Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1VUEsR-0006YE-OQ for pgsql-hackers@arkaria.postgresql.org; Thu, 10 Oct 2013 11:58:00 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1VUEsR-00007j-33 for pgsql-hackers@arkaria.postgresql.org; Thu, 10 Oct 2013 11:57:59 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1VUEsO-00007W-FI for pgsql-hackers@postgresql.org; Thu, 10 Oct 2013 11:57:56 +0000 Received: from smtp-outbound-1.vmware.com ([208.91.2.12]) by magus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1VUEsH-0000y8-BN for pgsql-hackers@postgresql.org; Thu, 10 Oct 2013 11:57:55 +0000 Received: from sc9-mailhost1.vmware.com (sc9-mailhost1.vmware.com [10.113.161.71]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id 5E96A2A7B1; Thu, 10 Oct 2013 04:57:45 -0700 (PDT) Received: from zcs-prod-ext-mta-2.vmware.com (zcs-prod-ext-mta-2.vmware.com [10.113.62.224]) by sc9-mailhost1.vmware.com (Postfix) with ESMTP id 5876A185B6; Thu, 10 Oct 2013 04:57:45 -0700 (PDT) Received: from zcs-prod-ext-mta-2.vmware.com (localhost.localdomain [127.0.0.1]) by zcs-prod-ext-mta-2.vmware.com (Postfix) with ESMTP id 9DB1FC0059; Thu, 10 Oct 2013 04:57:57 -0700 (PDT) Received: from [192.168.1.90] (zimbra-prod-ext-proxy-vip.vmware.com [10.113.63.87]) by zcs-prod-ext-mta-2.vmware.com (Postfix) with ESMTPSA; Thu, 10 Oct 2013 04:57:56 -0700 (PDT) Message-ID: <52569635.5090808@vmware.com> Date: Thu, 10 Oct 2013 14:57:41 +0300 From: Heikki Linnakangas Organization: VMware User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130116 Icedove/10.0.12 MIME-Version: 1.0 To: Alexander Korotkov CC: Tomas Vondra , pgsql-hackers@postgresql.org Subject: Re: GIN improvements part 1: additional information References: <51CEA13C.8040103@vmware.com> <524E7C3B.7060402@vmware.com> <5250A7A1.2010701@fuzzy.cz> <52546434.1000303@vmware.com> <52548F79.6030407@fuzzy.cz> In-Reply-To: <52548F79.6030407@fuzzy.cz> Content-Type: multipart/mixed; boundary="------------040005080904030301090602" X-Pg-Spam-Score: -7.1 (-------) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org This is a multi-part message in MIME format. --------------040005080904030301090602 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 09.10.2013 02:04, Tomas Vondra wrote: > On 8.10.2013 21:59, Heikki Linnakangas wrote: >> On 08.10.2013 17:47, Alexander Korotkov wrote: >>> Hi, Tomas! >>> >>> On Sun, Oct 6, 2013 at 3:58 AM, Tomas Vondra wrote: >>> >>>> I've attempted to rerun the benchmarks tests I did a few weeks ago, but >>>> I got repeated crashes when loading the data (into a table with >>>> tsvector+gin index). >>>> >>>> Right before a crash, theres this message in the log: >>>> >>>> PANIC: not enough space in leaf page! >>>> >>> >>> Thanks for testing. Heikki's version of patch don't works for me too on >>> even much more simplier examples. I can try to get it working if he >>> answer >>> my question about GinDataLeafPageGetPostingList* macros. >> >> The new macros in that patch version were quite botched. Here's a new >> attempt. > > Nope, still the same errors :-( > > PANIC: not enough space in leaf page! > LOG: server process (PID 29722) was terminated by signal 6: Aborted > DETAIL: Failed process was running: autovacuum: ANALYZE public.messages I've continued hacking away at the patch, here's yet another version. I've done a lot of cleanup and refactoring to make the code more readable (I hope). I'm not sure what caused the panic you saw, but it's probably fixed now. Let me know if not. Some notable changes since my last patch version: * I changed the ginbtree interface so that isEnoughSpace method is no more. Instead, placeToPage returns false without doing anything if the item doesn't fit. It was slightly simpler this way when working with the compressed posting lists, as placeToPage had to calculate tuple sizes anyway to decide how many items fit on the page. * I rewrote incrUpdateItemIndexes(). It now operates in two stages: 1. adjust the pageOffsets and 2. split the bin. I found it more readable this way. * I changed the WAL format of insert records so that there is a separate struct for data-leaf, data-internal, and entry pages. The information recorded for each of those was so different that it was confusing to cram them all into the same struct. I'm going to step back a bit from the details of the patch now. I think there's enough work for you, Alexander, until the next commitfest: * Try to make the code also work with the old page format, so that you don't need to REINDEX after pg_upgrade. * Documentation. The new compressed posting list format needs to be explained somewhere. At the top of ginpostinglist.c would be a good place. The README should be improved too. * Fix whatever I broke (sorry) Are we committed to go ahead with this patch in 9.4 timeframe, in one form or another? If we are, then I'd like to start committing refactoring patches that just move code around in preparation for the Patch, to make the review of the core of the patch easier. For example, merging the isEnoughSpace and placeToPage methods in the ginbtree interface. Without the patch, it's unnecessary code churn - it won't do any harm but it won't do any good either. I'm pretty confident that this patch will land in the 9.4 timeframe, so barring objections I'll start committing such refactorings. - Heikki --------------040005080904030301090602 Content-Type: application/x-gzip; name="gin-packed-postinglists-10-heikki.patch.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gin-packed-postinglists-10-heikki.patch.gz" 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 8pXkxNmuxSRFVfSUTvokA+I2BwQ6mWyMWjWUY2dBqiTWnhI98tLl+LlyhFmR IaycVKo65OZGWqCv9fot7QupAFT9Dl4GaI/Ld8jGNabOTXeJD5EqZzR3V11R /3rrpFByF2e/MJVyPKJMQVXyxJ7lWIUOhcZLHTK2jAcUg9pcOXd36NI9oMeE aF56XJxJUdb4YjaZZIUEaw/dUilkJUGPvylVicbcwUBSiMqSwwwuFeTXLndV ZNUKzDcZUKNsLBVtqT5cXCTDfp8+0cZLk7jnGSmi67k+OgpG8anYA4OvnbXS edI77LaWM7KmNsXb3sa3k+/3NL3hulm36XRwrTfS5k1xqGnjsEXgUC3XDCPj 3UphmHTny6XviEeOus1sWNRqNWc2m8xMoMk9L83cGO+SXDMszTIJW86Zzs4X xsSvVaO5349qvs9rv7fugbIfy7D3eXOI5xriZX2VFRq/Rp8gAqc1CixIhqdP R3Do5QTUOUNXZNV6qwDDZ67hwJUgFpkX+LBbvbUKJfPzBUW0eromlWU3KW8I Kby9F++S+che7OarRZkOG2/u103ZT+DXaLoVhPAjG6sqOBBztE4rxCgvwIKu SznrcK5DXHENiuRlFKku75AVDC9TSoLCXrzVTP2ibphVXHitFFh9Z7X/UZOo RO1ammXTBu6yo7l+ZsagxV3ObZt7bd0Ld7Gq1i7f81do+iFg5uKmuT9G2F2u 7Bmsn2LNPTYdPSk5rnGumIX2TjP6yrfx2vWdcGiqd/PQrZmK9cZtqs4oueku gwRlv92HjpOoeb25eNKbDSedl0bebD7pwKcVZ+M1cl1EsqViNcxux1TIT1QY bh11zWtOqHI1FxCtT1tVEVTqj3BHX2VBmyBSbber/sfkcxWZq6zIilNCYNG9 6l1JgcEW8R7OWGqhsrf3FDrFPQkM5DMEwYxP88gbEmHxAtKKui9u6vmqG5Dn BaRzxnPCHpjVRFxitGsL1VJETKLuSBiTtFkc9sgVYS61bRCjXkvONUq8a6gG 0uWU+jEuNqWE9AjFkkPLInf0qlOL2ABUcw8a66AON7xIETWeFJLbgXUQAR8P 6SDg5aHZ+4CDhP4o5MnQyHvF7YAXYrS2/KeRieqcde7PmT7g2DDHJ2LbdbR3 c/BBx6xcabN7gxGlfXZNXFlx+nMcWlzpaaFYVi/WRfNdYaJGUuMcqW8l5PJf 45+wjHNE0G2hxjlCoOV6GXqZGykR3zSfDXQmOPRUKGXwh2VJ3TMuQFnoIE/u R8flFRxE7oYtWkuRiAkaDbpzKLKZckhkiFgAqGg4q1y/wThp+0vF+d/M6qHb 9pdGc0NwmtkI/ejZec2bGLcmXaWzG3/D5ACsC8OinAxC5L27HFEtbh+cEhH/ NI4V2diQ7RXjDNHVj+OimN1M+PqXgpyiaQMKjso2X9s2Zt8U7ghEC0kbMokx OTlH6FKVMNRjocbKmYgfw9xA3aZPMimmShz9vMgbEeODFMS10LldyhaxVs7u /F10EsoicRN1xFIagQYTmyNPIzpaXDbdAkZbFG0kMS8WUav9IVzJ2Q5DfmYT L7MIsqG2oDOpZPUt2MCFc1W3LfNbDZU01c/U3Jn6utgGU82rU9X3fEOFlG2u dPDUfDFcNRPD1RJiuFpCDFdVMdzTa3lytmWdvMeMQqavpYK9ZG9ror1qwtGC crYKyNnubmBg0S7WWN1W0cH2XndjfUPHFd2nG7iJYQnK0jboaI4s3avI0qxY 896w4Pnm6Kej1yev3rZL1lhjbSv3ZBQEmroERHAhCUGqcuguoBSh81USbHRv EmxInEOKuvCKWFZcbCwMIj31hUETE1ISBlH/J56mnJ0GK3JjmqFR8immkMbx gOCHVbx1tCtGPejIDurQyTT0mQxr18DPodT4Kck/KyzZnuQUIrhYzPvqmIW6 kAUS7qqqhlCMgRuF602OvtDOwzQHngkdRxnI5SNCfRg5dnE/fvU4SaAZS7Xi NqI3npsOF/Jpuo3UV3Ar77yNwfDx+w0bD+YYrIaPuyXg5u1zcJvL6T9l3jRh meH8PQ4Fz8/txNXQcPqMoibVht0kFqhwd2CrmO24xKRbudTm5WyrGDwl9REK mwhAZURnQC5IRk6VXq38qVSu1uhCzWTPS3qJlahqGEAASDE02jxHW2kdVpuV OghmTp9Xwrn8CK+MmtgQnfBGknt21a+HwbqDlQKDaxSzllPtCcy7phk+fOcn QF6o4TUL5ak3cVU0nyzjor4SaUi4s4swY9S0o9rtYTYDQazjjh6u06EbzivY gZP7VUnyBswkFKgpXC1ai7+AsPdrXaFnk6hnTcf0ETtAwGfZElNDfa64S/he EU/ZD0g7kbNXg07Y/Gs1QbT7Doe6Y2bo1q/axajRNrR/1U5S978z7Bl0hzzb AAudSzpyrIqYHsbWYJFDTeriUESDU0OhfqvhlZNqyuC5v0uLHUHqts5JDCnU W7Zb02OleG2cEwFFJYw2daU9yk1ZsPqDcjxQyCeTXdKFimpElKBdrSxH70e8 Yula4ChRkhO29ru7KtpY393qbmxuoZwgW4PTQOGj7jrFydUzSehO6bCh4bDi HEhfqGKjcI32inpOYenaSOAyHDqJhIQPweQ/AWd/dvKisLcLs9/CMY4118Y+ TAhhJxGnx8tge2ZaSDnxi9FKY0r8jLNm5kPojHAOeGPrcKrvLK96HAfXCxzO YIT2h2Sk8zSS2qx8UayK0oZDFEVcMRGyGBQKfBALoasUrEx/y+VXqT6KyMdb BLeaMQyyel5r55180+hYAEesSIbOmSevSp7AYBa83Nza3Jgve/0L/GuNEH6K aloQn7xF6VJxTzkRoUmPqBMe8uaWHPzNPBYeV4mf4kvDTEg/GWaaHDSPJXnI GGM7+0U8Fs8tSfNqmJebMxUxfxvqp+8uZ5qPtRQLVxiHoMyn2B1/mb1eCfKc AcIcDg+2Ro5HdWdyy8jEVQdch/0Ky2uKLy9I4SPtEFnOjj6cnT//cHJ2fnr8 /Ozk3du2vAnFnujrbqVZhIG5HQGFlamqvTzilBMWinrIS1fIQyxybYVW4toq uQoXI4vJN7rYH4/JLc6kp3SXd/CYrfLbDtzfxPlH3tYXaT797O8m8kCa1r3F rLV/O3otaGMAJTLY+2kOd+NAc0F1ibFacr89L9NUY/BzY5WJ3v1sopQpZMDV WFY9hvxE5ra+FesQmWAYgEqPDbxYGrixzPdjqay3438TdmrRKnotAi86Gwsa VSuFNPCaqSjoJPPd8m4xlrmtT2cnOATPEIM4BU/7w5vzVydvz09eoMT/7hX9 8fzD8dHZ8fn7sw/Hx11lpeyWnKXXp29NAtaBPjzMwv04RuoFeI2+20ILPbTH KjMhEgYM7AvXn5yubjigRM+FFRl97sVDzNFF0DKCHhuq3KsecVv/2XtqTnPF WodVavAezZMb4ZfoRrWRcjCizrZVYoMcG5ncNU+VvUHMCUa51SImlTZavRqm siHwGxNC0Zvie5cXEhZI6qSTqps3Aj7sPSXes69Nc09cGGAwCG68xsUrvCBw vz2XSOhF+2Ug76RDOOwy3LfGVBR+7cBfxpygpgPHcNBDOHxNO/AhF5VxgIC7 hYCoMNk+Z0h5T4hd31nHTG0bGwebXCL+Ll1prS4WmTphwwYi2WvM951oXcmh 306Xu5e2L51HTssrv1i9NH7lP6VEKtrU6hRoltZe0Wan74nVcWnfAfvEaVdo fae0MvpPb0Us29ibWUs7hyuobVS93hVasNeKfLCGpauS8XAtHgyAG16DD/D/ JPKTemqgLpq1W+HTvre3tbW+ud/vx+s7l5eX22pjfX13e3ul1+s1HXEliqLG oyLebOx3N3Y2AHH2u5vbgDcr6k/iGaEezKbpqFjLk1H/+oGTv+lllt+AwGVN GqzkYJIADTiD0qUT4HOrixlOs0xdpJQwgnx4sEZD16qCsd7ZLQpzxSwluz51 leQ5KpYv+ZezLHsGPaQFmcsoilGnQcKzHmhHFMPO7BQOQA18gOK/eHMsZeKG STHI04k2NVh/AVoTdcVZwaVoYwFLotKgQAOmnO5eYUJ2zhVV48Fwyx1R5E/8 kb0lULHaGyWfkhGWphLoOtJs7GXioKDNdCJuK30X+OIBhdVxB1PK4wab9FkS dlA5SdNVj+gCDYVlFsY9nARDn58BSLAALzalUeWxLVU5gaXxRIAr1M4zY9JG UupJ6oxQ4nyaDlnfS74f4wThH+efAVwnXGYVq3tB39CX+HXRzmKc0cd0whXm swktRGcPmegYKq6pXMpWclgCBxfSIUcPvY/kVKh1BR58KaH7bZwPQdxGRR6t kCZEkeX491O1zjpuKlnjqqtFHzPSFYtEvX3iJJRH1xUuViL69SK+YY3EDTq0 5AijdFzqotA1yYjhPmOMBPqOZ5P+aosOAJgDwGzkeMUx1LdRxdPpeHbTVUDp ZjeIbsTgvZ2NRs/hi6sMMU9+kc+rmojJ0NFDTIbSDi0w7kns6CrGMB0EU+0s gxOkO1bZxQKQZ5OQWmQylFRgtCJiy2cgFG3+4mbpGsP65JHtsoVdemmfdJWs HoX/KeYwqBZjXID8QHTge5XRcY5HWDdgdjMWPRKISKMZ1ZZTNAUbu6cX2nua jZPn2cjkbpSprqNzF1lZe2au9KytdwL5GuJQj87O374D3vUvx/9f5zAQS+v2 +OPJeLqxCzcuAabNcO1UBpEUv/bjjcB0NhpPB9cMcNKS1Dmi/TkBzoED/I3E 9meeE/m3dRlqeORoyI7eBY6cfJHAjt9gXe9Y1/rRdbMDx7+raWsxy0mBgfVj C+4pz+B4mlpAekVYJwYPO2fD5dhLbs8VdLRZsrwo44xQOLcfF27nYW/iz0Dz Mcsglxri2ixUogZJ6JArayAlLKi8RpZPr8kj+mYym2ryRFQAZKKr6TWVqyc/ OUn4i7fKnxWn8+VrN0YFMJC+7FbNiKtnAd960AFrz+miuSdd+wQp9yieUJMy TUD4aEdKKkZChUYkgHf0mTvCsiAFXnyXcTq9tgGstoCAPXwkviGmyEbjQbFv f4gLHL7gFubA6IMKiGAPqon4X4Sd+jOWLPXSmPi0mbxoFO2YAPJ2CRLck10R Fr+SvwDreADnLNiGpz+8+3DGfitOhYOKHVH7dE/EZwvO71uRjRgYXS4lUzUk +kpWidWyKiBvne4MjJrMytd6Y2wn3hy6RPZLJxSFSjbwSkZpPGP+oYQ9huu7 j8iK7qIUWGzdOvlKo4jrDNHR5x7pyFdRKnpSp5ZDBT/M8tDbBOM6ZAHQk2Ic 3OSpepOO2ydvXxz/REl3zt8cnf6Frsg3HIFPetNOUOMHg7G+T9nUvN59iNck 0IQJnPH28YcP7z7oyA1shgcKnz5/9+L4/P2Hd68+HL05f33y5uTs/Pin58fH L45fSAwhNL4prtoPmDkFBpqVvf82mmHhMqoEhQn7b4Cy4jP2QcKmf3/wb8Xf Hzyw2SfaM8DXK/ShHWXjq45Gi/oGIeB40SdlSNmutOyJPoRa/wd8j3MriBZQ kl+wHK0phPFxEL3OksZDscVNhj+nv5BllXMpufj7ISEoMgU3N4EXhK+R5Lsw IbM5mfkCRGEcqPCgcuZ6LR6VUrfACbnKk9P/97U66G/R7ZbE+SgFTmiYsq1u AJxgzlQXDVN0yLoYCHGbSCdcrY0qRc/GNosTXTCUgo6KtwHZpz/EC5v41GFa fOxzL2sSEItUwugiaSlRcLkmoHXdLZYSBIwQanFapUVga2R/CdzXMDNdXpSg ByzCOdZgUg+fqP8sIdxhpdEfT5Rl3UrbKgVIB/5FFt7fuTeI3ly5bWrvKpqe EE3n3ihdMF0zo051zpTNSmSDCgWd5NmntDxz4oK9eOYyMSfpqtaGIcRSNkob pJk9prmJJuAUmBf0aaDEjSDBzAZS6cmYUj1JinVnsBKtPCDRinq6jj9Z2Znq igFv48ozdE0AyhtdQTz8dYZ5KKdSzJAFOZYqSbydouNRj4DCFZtxF67ROjtm 2aMiTThCDIDv9zpRQLacLuXH4VtZIGdvGm8LnLvX4SzufGM5U5J2MKu2f25U 6dToGTY5XfWHawE/YDw8qaDB/l4XgBtt7a53t3ZQQ0kqBNFRBt3zjNNW1bGy Q/2qUi5tXe0zlFY8VMObZ/BNi3gvNcQyPojq92Z1tb1pk6qU/PgDj7uBQjaq XPrmq5MQq/qAu+YVo72Xx6QgkxZsRPnHLAUAJr8BJSHfK6+gozFZfEeb46mV q86RBIhQFZx5GYb9cLYKoi+sfrP89zgb3kYJM5SyAmKiIurS0QEYorwrXc7u y454/tJa5Qc5vpPTGo/z3RM5iZgdKrsSHlY9AHFvxLsO7AZrw6jmNfKc4pFl eU9MfFXLDLrxIl7l7vsqNt1rVtvnX1GayI8CKdcmCniCVgJIbCyKrkhkjCv8 pFqbyGh/hnPiVeaGq/ig/AYliXY2N9DQtXWwxyWJ7puG/3dJIq8kEQcwEeC3 thDw2+sH3wrw/4pqRIEiPeGqfsdMM4nR6JRmUVfFSOkqRhx6tbO9hS6VWFRr /xuhbn3tIGPiZHuS6xIRLtWCM97b3Kb6X+sVozKBI2hVDqrvQ6Zlmoi1LVOP 9cZlat3Yukytm5uXq4xArX25vGk1BmZqttjCfMyrWtLEjNEVC6zL3EQMy9uX m4ONjf1+f3f3YPvgYKOpYVk6WWRTlmaIMJuE4ZtbRCJcW/JNWgzi4U06Jlty 2cYMgir9EnwpBujIPpfhr+Ewng8ToMvyJf7vT8PkEg0DKLG/P3p1fP7yw/Ex yjPq71JYbY8O4dZ+d/9AcPqHJJ4QH/QSViIuQSHLFDyjZs+5QjSGSg/0r8QH GQ+T56MkHs8mbfutcFLij8JuzMLNOja8CGVemMR8Ox67+d7VkCdewFUDWVQ1 kEVVA1lUlYqF6/5qA5n2CKyayMSRqGIii5YzkbFfpMRJVXqsM5FFQRNZFDCR RcuZyLRD0H2ZyFyvLpaLzQR0PhyMpyLrFkVPGncGkJWmbN7nSBVWyElpC9GN aW+vRfYbvYvz9WcC/4oNx83aPEerFrn2G2qHNnW8H/A+dDQsWnPRkWIP13DW z9melpzjbXmOnSwJaumr1iYUNbAJ6c2fq9zRsFzeIEHQLZkXouWsC9F9GBei BbaFmvdB00I0z7IQ3cGwEJUMC1HFsPDFO1Q1VgHPD3KRVUC2ZpFVQFK6L1SR R01U5OVGrhavvMZFKnJ3sY2OeKPDvJyKvBwrxRcTBydrxaCOV0DnoDzGKDxL 7grx8SqA4I3EjM95ZDiOeax9vfjKov60kwASEG3ZnySD9BKLBVx8VtfT88E0 HXY4c1A8QXcpr3AR5dgXXeguSADRzt46i1JlFkT4i+DdL3Jc5VpWjqnJcwSy ANQ8AvKmacLxBAJU+dMY7xD9KcoBhYLOoYOwFQZlif5JbjKYiG5gT9SqwI1e GW6KyDDs08/OkzE/iiKy2fGivU8KINFiBQ7fTA3ZaxAnFnDX1EKY68HF3t5B HPf7F+vbWwfDuClzzX0s4q25FcliG93NdRXhD1Kfo0r1OXqxFXBzT1+O6zhW FNL+AlwWMCgdU/+RlNNKC2Mn2t+apFBH7e7YJOholKS7Vdb//V5WM9fXGfSy SVj1cp4UIe8HN4r6fX3EtLg6qPUv+H8Wdp1w+8rolN5MPSSK9eL49fEZ3HaI SmtSe+s2LtSQNGR0sAfZWKem/xQPZsyqqqo6eMkQo6RxJRj5xKrSMNUVTxVL jaKdN/nHDFMn5BL3dkW0L+eYUKNjIh+FVd6Zavwz7SaajmRzuGmHI5bKkdFU MEIcG3KKmL8KJxxmrHnl5R3xTPKEZzRSZ3lDPkVdKL62F07CtGdfDPzi8ROp 71HSgcD1Qs7R2+gdraKNna3uJlHqohSbUI7TlPPGJolC/9aVLVASZnxoYLco Lk4fAR2KZv7WJ4IWv7CXpRDzLphJEF3qwKGecl3XzZlPJzDQrJoibEVn0XcR UkpzTC9uzuPhkMWoom02AnucDq6fpdObeGJuu7ml6RhB6zJ+m6/nTN+aT/AL Zy6TPBmmA+kQWMvZaIp31yKiGbUCRYECZJBTBUyVjrNppTpytRU+z/jid2ay 7xSL3xTuSvJDbFjI0NepTkjwRSa8GFapVChRGgdfBYufd+g4b21vI9u1tbvR 3dikK5R5hzd2bkabyVpVUWkG7bIysFsVJrQzq+y7Vzbvq9WOMP5Wqql3BKjx MZBE79adWutDzf3vQFBzZ8xWs4U+Itp3l9NSdSgJeyd6G0wfk+PJ/Maq6Tmp 9GHQgVV9lMJge+egS5o+TAsR51NDoL+ngdxoeAxsdkNGS44bZ46oqFpz4trw pR8+36owN60QezP3ZBtfTuyeeAFy9/pbomMwZhR3KBEjdClcJJfoG00pjVG5 42VIEIva9u56dwPhtL/d3dysB9TJeJDzFfMhuaTQt3bCG2SuGp5a8DoqNyXX xfr9BeKD0X1igvda8HmYz1eWQPSXJJkwQNCOh5wcSNI3yY1oxrTz9HCWkxRI LRGUACrpYs2dMHkzBc+0kkPNEcX+Msfy2aLJO1WWnPGs6+Sd76qFN9Wi8qrL rr9pfxoy6/qmWo5fWZ5h+YZXoAOin93lidhqDr++4+58BtzONca/BpyVeGPv vHWJ9frx7et3z/8itAvVXt691raDddjiu713QGoKzBi5UUsXTGW/ED3G0Cjh y1TwJAQo+EKolFa+DF7WX7Fup53aQxi++hr3GlWvbHtXJ6F72hnc3NfyLC1e puO0uCaXH+PzQTwJiy87QNA3tlS0u7HX3dwwFmcEefIbEY55OgOWYdgbiIat rd4o8wEhmb2M/viD2rfC6gUmUqWP7AO2vnd4SDmKZSGoKgbRw8VXJ8NPXwyU OJxyJ8G1mJIYx3I0XAkgp2khenoN9zqH6OnP+Da4C2Gvp+xfJ4Z8PW1fluje jeqGSH5rHjXWOHBXetyYIGspojkVbapP5JSvC1SKupFoFS+SON7d2er3Bzu7 +/HeelOtoulmkWLRNCTJaKe7uwOS0Q7QC2KVp58nyTC5VJxOH8BCtt2jwWB2 g9mXUHmOv6Mhm6QjnfeAFWEmVFyn56ok5yL/blSzM17X5+qibsr5uozrFUeg Ue6nCyc1EYVrp4U3ZIcjdOcGrysJEb9jWq/7CnqP7i/oXScqu6eg9+i+gt6j +w16d4D/1UHv0X0GvUf3FfQe3WvQe3RfQe+eU72b0653TzntOrVeMgs9ZL4i 0p2jzUOR7vzKC3enJ9VwdzKLBFLt9Uqp9lRN0rReSYPg++tsVf11tpr767jZ /MrLxL5cu08ljnRttRJCrAkmlxF3c/FpGs88kwmdoUggDp55g1WmuDrGCe34 4X15E31rXyLP14ctB//lHIysM5c3R9zHmkx69+aN5NSq9XJgMRv14ujsSP1B v74+PnpJCD/fjtFrmiXQuDLcS5qAqHmaAGzK7e8rTUB0f2kContLExDdV5qA KJQmoKmbGaJXsMAM/qqz1cmVMi/ETmhOoJapLz/ZIh9Ro1B6nF997sP5gXMS EDAnM6KbvO3r4+yjBXH2sifaxUmuf2PFDGRo7NVlaOw1ydDoxPNfNcipOhkC 4QS5r3R1MQE0kfkblcj8SEuXy49HuTjpFyJ/PNQXQ1vnJpHshZNImq8k8Mii 2/26WtmDZZZdn92CL7S5Poq03oUpLnuLU1z27pDisjc/xeXXOE9WEjaQYjLg UbmcS+U9+VQudKpc3quy1q3ym/hVOmgztxBQff0eOR+9SqbQReTe/8ZPEfqv 8PVkUHxVXtLe/Lyk/xRPUiW7Ojf9KQaNB9Of2kTTjfId+LlH9YWkcysThsxJ ZVPnaFTJv6wVine/YZYeyF4tPblYGKyltKH/5zns+u66FALTM+66wMgUIj9i aIKXQw+ZdZzHo6KEEFlO3w5EzeipGEkbQyhO/YgGiF4BcqG2hX28Nja6W5QA c6e7tY66z3joqpSLswz3q17VoLRkztX4WnVaBXznCOfi8lhRMsBpOmGmdTUb 0UQKK7DDE80xEv3Qf7D9T/btOxS6ClfzAp91xDovIhvhI0Hn/CqZnsPTHB47 xij8BGfMlaC9xvDIbwjo6mw1eqQ586ya+bhrakTLu6vFzhlETGsORNQT9z1w OET5D7nRVw3rDCLD1tjztMaJIKQXG5wpfPMmya98p0WDCP4FLRINLaf0So/R rYCGczawswOrZkVHjYpsI9tKJVzJ00L+irmuhjTP35uUaX6aSJoPO5EzOxuF sMBpa1zkRPSBgU2OHZj7VZZhupobnGJCUZpihHN0W7LDOrcQFRQPXCO86NlY VNxY8Zd0mnAzUt5r7lf3V7c7/q2Cs/VqvPuv3bU6r4OwoH/cTdYZotQNTkKS O13HnxKVjNKbdEwh56QfMOYIu4OSfMhNewNzJdphOzdpIyO9G5YIOYjqOnOR LZj2SOIR0HfaA3LJ+kE2nk+kUMh8Os3O1K6iVF5zSCz74e6hx160ubnOnlxL k2i8J+MRprz6LAadekuOaomzbsuZCOBBVaNd4n2/EgOcvFh3TAIvWebcLPA4 5Jw08HZChniUHprdd597ec6V7P/b7FaqW9Is8TD1plnvIpGpVqwUzvYvygFf hrSLIzYnPOHKwTaFIO9uc2wNTfUloOr1IhxpiMdMP5dB4Uj8cE3KeGVS6Ygr gtLqbtcy1cvGI8zKT14vU0mC9Tc45hkr09jVH7V2hXbl21wHZmYLVr+32d1Y X275LRPWsDTJV+VwIeUltTsxKegCRmBdDJxob1xTyEc64pQZvbufT1Umse6R ROF4bOIVKmaJf8Hx1OPNr9BQRkUZhq+vp8G1YJvfjed90IWVxr6ncyk9NS3W IEPXV2swm2bLNQRW6bVjaPQWtvMoG0/ELeHQk1p1HhaVykDU0ccjtEHgvW38 FKg0sLAo7jkX9Pa0zARuursdEDePaZOPkKYtcETxWq4gW3SJrjk3qMsUJxRG /HX+p9/fPtjd200OyDdlbZh8WkMpeaEDij8OUq/17jrIYV247TF5RLS22ruv f4wfRGVceAi7nmdoNpGw0GESk1GcyNPA1Drz7oXCuFZQtz/99NP36vi3ySiW 3fwU52QcSsaDjKLqyTXC++Z9RmWgC9J3cCG/9qCjNg4OdpGOb3XdZKCvRtlF PFIv0EEim9ygCecVTHqyoKdtLPJxBa0L7c3x4zgFLqxIpyRmP4eVwpLHaWym dfLi+O3ZycuT50eomSH4tFpNdxFa3+uekc3B5v2YMEAo2UcUSAgC8zmf5Okn IEjSRMoE/o0zTTlKBeZG/KT6aobxwJW966tTGIidJtw73kvcDy2AOgOkYZck b/9twkY1VMMoLn+XZrOCpsE1bHkquiRgsKwe5cufqziqr8bnh29WnuCEJBeI lqIu7PLQ2187D2zsAitIVi79ZL/V+nTolqZ1Oi7ZZckZj1WklaxUh3UduK4b lR5KJSFNF1c10X+0clotKQnJccJfqDgCwi02Ob8YfUyH/Yv0fJRRGdTK8+tU PX6sNnY7qmckpjZ2H/q8+tx8ThMxAYGO0aE8ucfqh5NXPzw7OXMsVp/w9qSd 6KjArrVaov38dKh1kJrfvwA26aMxVxnBz+m2pt+O+kNPZNEQpQU8ffpE7TkW MsQbkyjOABidcId1MJHmi0BhsfReICDOyI0XLrMMrVd0n35V18iraEmKecrL YmlJ5SIpKUc18YA/KqQiYLv8NhSBlZNOtcy7nMn/SqfSL+0pu1uL1V+UeC9X WpiVzcH24FhlRDJD6BemZ8ErceziFBgatUhtpaa3GWs78BpCBXuhkUgr2LtG laTdC8uera4Hrs3uzMy3x8D2NU5XvQ6N0wH51Wg1HjsvwIvVYTHV2MzYRwhd Vb1VlLbDwnDfVae92DoUxvWtLmyrCzkB1WH41A+LaVBxH/Pr2GSiWb2Qotq8 UbKBMVfpjtFOFGNp1gt+cIEPLizN47S7N5P6qPaYztCFmPg0ocRPxBQGhGpI xAnTbFxYMmUidqj7J9KYyR/IKbfoaTRGAXz0mfz30O/UeAMPgS4BZoysjrF+ oFZsf/dIrdvetvlSCyeaYOgb274CxuCc7IEZcnvezS9NxShOALFAgtKNtCv/ MD4Y7IKctLe7vbe91bism+lmkSRlGpIr/1Z3G135t7obB/shV36nkhtlqXOs bu5dALLmTfYpwUwY8dCY4jp0vP9KA6LPeo14hMlb7X1GiceQKRXHZpM2h2to j1WSIlVwCAteeYVqj+lnB/2wy0RHfEg7fQU3HcvU1FtGPSHW0sAZYDrX5iJD IYeQFeR6Ho9ukRRaFn4VKyuM0TffDysggxBq2Tk24JIzpInPH3pvoy0Rh9Md fPeEPKWDrtdUsIcT3js9e8SwbzoiwwSvFz0CaRO01oeqhGFPEsYaD4e4EUx/ S5M0wt08Mm6US9qr2/h1CzWGwzHmnXcjgl7ph1ql+Klo5todaKXXbZ2+NVvT bFxN3sMiERygLnaoGK3k99RVetd8aTEDmSiy0ZJ3DPt4a1ZJK6Z+1WFNi+LR mAE6KSe7GRbaHYUbdFW5BZAA6/2towIcv2GdVEdrC3UJc+30LWmZqboEVlHg hDLoyemRAE5YRT4GeJwxn5WcZk9FXj7VqMUtn2juhY919TTrNMjizcHNJD+I Lrlq7imh3+uHQMWwIMq1WPaHWbALc6OSuwTOwvifihpdB+KkBV95s4Kzl0/y DKks63uYeQG6IZ0I2cBCFBLDVGCWe/GgHMXAtEjkICeLRlrY52/pxtQzVBwp bTzHx6gWBUxFizU1YWV6sKC48THRniDwMKecZ9c5kRNyVq6h0CvaLUTjoBMM x3/BLA5Xqql/cE/azqaoP/5wapx3vHpHcCh7T5EO4sXV1rratKu8F+dcZIt2 F2ejTOX1uwX9VUeWhCPhUU10Mr1mNlbnHzvnW3CInqEbrMgm06dDqfQjOLY6 aJXIgCHid/UzsMZfHiFFFch6R7TV4vpsSdNCV+dUh0QygZEJyB0rr5xJC58r g9O+fEdIUYrLlIkgE84klpr2qKW2MOKIAEH7Rl5Q/hTRqFs6ppMwhdKrGKJG abXLmwZ05Zyd7SXNn79tBMFfBYIGdJ2ff+WMchjDkrKLcutXzcISn8xT67jg W6SWI3gI3j3UZ0wAUjlySoCQuoxwaWRav756eH8AlnoR1LHI3KbR4yfK2V7H A8tAsaSLmBMdiVE4QvDEjk4qCS1TVpy2qD+28A2HqcTspLbuqRb1/lXRXfqS Q+2vPCKY4d+nNjNpk0gvEhfvMzxr5b8DoL51ANS3Srv83yFH/xeHHOFGNwn9 se3C8T0uwvxrA3jkjDrxL5r+le6h/7LRJ1+ZIfu/gzy+aZDH/+3Js5Xvm//r 4co/PY5B+G9iNImZMUe4U92D/5NjBXRRmoMdymq0ub2PCZHhCcaGiYIIA4bL eQZsFZ1LKoSkC2PVROepZtXDdDSLl2r4pLDBp0YQRmFTp84OhqlWQ//mh6Ie avHafsMyDUc/GSJZLwo6HxqJ+VW1yJdjFygvYnF+IJ7M3OZ0sp1PPBjA93U2 WjMZEwrmg1aGwIVLKNRGaIRFULarEEg6/fpQlIkSNdAC6+/sjrq3i0kVo60t +KlrKHnaTHTsIh12EdalVlJIdFkESQtysitnu/b3T1DQk5WAeAH1h0fa8S0b DflBM8yrKDOszsCUY9bSVeAVSVkiodoHMAfzQH98kaDjYfOsVEoc981igopj UhSzBsCN5Ko9nRRNIQBTD7XOgK20POkl0byNxUc79ZMz6+5qqKBrrXODPzQ6 n4daE229DNHDELje63h8BT/ji2w2NcnM+frr9/uOm6jd/O+eWNToaKpg9FxG SxZOG6GMksVuwFOjrVoYp29WNDfuRuZmFTNa0WEMnnokC0LTswUVZ4Fj3sXu Z4M81A6AeA6lbT8Nb7s3NnzF1fpwiXRtwsE3CIwTq00agC9Ldx1pv+SeM+3Y Df6AyiTubpkSE/dLdWAuoTBOnXkVeQryccVETOxnx6C4RQd2lFNAsE5B7ryc 5WQqEG07MkmSXo+0qjwe6pwX7M3juhThpW6MAs2kfm9dx8Vf4Ui+5+wjXPHQ S6S4dbCBMQU7OzsGmOgIfZZxHc07QVDpkwB9UH41NycQju9m/1GiSrpJTC1P U3ZTK5mSm8n0sy1+wMN0zEW0vXnQ3QCM2DnY7m4cfKNV6DtQgrjutmXzmBFZ Jl79DUkub/ShVUo5fSw/PytvSi8mAIrQrH0DItIouZzOKcXp4HI5S7lDZdkP Y5ygTY7JN5cVVTcZ5qTL4/HgWtzETdynbLnVd98F/j1rwUAVNw2tSU1Xo4C3 TP4T3VPG095T3eIzZb5333jTc1GZT1zPWAK+1bhRaFgHabm87DpGzkS7+3vd jX2PclJCVJpS+KS4YoZ/cFaREmrzt85JDRtEHsKsTB+UqxUZakluCJS4Tl/q 6Vj3QaUpvQzVc5iz9vRmwhmWnqgMkImPx585rdv3YfkSu3T002/nMVXLpIV3 +Kiei67VBMLMlbxlWk6UWz417OI8ZpNt3tiBKAUWrsLhs1qhBbnv1wOt39Y3 N3xb6OGpo7mocF5CFFoBmwezBV4Muq7WuwVyx946SMnb3wyPEQlPUVHseqa5 BXTILn5rMtSj4QkwOZvl5nNWYNrEuvwrQiCEr/xWwGES+WI/78YSEYeuXAkc /UGCAwcPlk3/riOQV0lfP8gmKXLPNkk8Vi4nY7nf6rNpIw30NNbkNzN3JRT4 DCaAv6JWqG2Woxlnw86+dbhmTYcZ7yncjZyTHaG3jJ4d1XMaOMP0dFfCIOv5 Raiaasp/v9XEG0OG5bcKG222hrRvpKnTMRfTjDPBSjwcNxRdnqNC6miYkQAv M+26D0+G9nHaEdbYJvCdn+TgITHNVvXkFHSoS3cQ+sTPehDJml+e/PTm2Cwu VI+t3NfcKPo6KkS74VZnk3/MPjpUJdS4vGs0W+K4zC4IV+jAWXP3hKvY+IjD sG2bNqtGGDwhDW4XnT+kFC5HkyOBTztN/S9R/FngfclNdOXj4fpgcLHf72/v bu+ubw+a+l5KJ4s8L6UZCVzruyhw8Q+sFMV2bZT1VxChPiTDTBJYUSifzZmm RsXYVPPO8iGQWfpJ7mWqPlvaqs6HVN+io7vV4rb0jMc47KNX463SDvdjbTd1 c2ANcG2M0uFi0UeytOxjDYKIfmrp5U4g1UkmCYE7dbkmFSdyWSJ35denIsTt 7D21bj8LlRHOBwjkNi3pBzJudJQ0ngzPZ5MJ0N7eE8fMpgUno4OQIkPmOT6j sFbmSGxiqjvhgHFp4KLEtAOEvGRr8CE3T8XXVcbK0Xvq21obqWG8D5Ugmpcy C/BGUtjUKmlQezRHRTM3+ZWSunJb692tXcDmLYc5uxM2h6iM5A5rSGB6msCI aahMVfTjelIS+T3AWb/JxtzPoNKRflvf3WKCoDi9S46mtMssh0uaU2KP0RmB hLtiMkqnbP/njBRoDtJvJTGKNqCggEhHUAT772ji+BTxibwd5QmjBIv24XhG o3AXkdz0LzLnEzck3gzmjsV/Lx7JRvA7Rgm1OjHWCJdvR5F5cJ2OhprdnIgF pO193JzM8152hB3kPTgx4D9F6Mva0abmBdg7I5aMajSpjte4Ag1rrjK7pPdO bENmrch61471sO0vhZIBIDFGxyoABPUO5BM4J6HHSjO9JltOz/q53n0bI9fB kQT4soOYyMcBLvmfsFvMe77IbseYq0DLtIt3yNuGUidl2HOhGQfoxHtrkEfz ZjyQKVsMZyI/KE9JiXCwRnUCQCzk+At1ORuNeiwR3kjORPbZQj4URL3b5FFO CmsSWIh27x5097aAdu/udPdd2r0M2dWeEtaBwOS/5PaxJMB090VgLYoum4tp 3qcD99tB5WNWFX/HH+h6PnJbudPUEh1BypPuKw74SzBYODbACCReufD1Pew7 kZeJdOj4G72pEN6QPd41Urnn1ZoJPMrvOXN7ipdUpOBvwkHbw0qCWoVKEYUJ X9L2tZwl7b+tayxPtU3dqT2Ij9+X6yrB3SsGNCPzlQHrKOYFHN6d55K+oBrc qj7KsQ0uW8sRDj0tB2vW+mjoBwDQ0X2oPbj1SRG/y8h6vi9nUYYv5cjhZ++c 0HINtSX7wa+8buBInV6nl1OV/JaygxCjkC5VQj6gEmKpN3DRmKbgkuopf3O9 DXLWZOaHmYtggEjpodCDfK5Y0fG7NvAt9fj0iZ6K/gCYfgysqPuiq9t39VyM bpRouE0zhgqlNtXDQWU4+so7okUrYBA2w1hnKT2qHWM5iaIJLDvmMA7yH4Oy RaC3bgVxRFfDgROac9CxGHNYmlqCUeF6tDIowFb6pOC7MC1QNmJlGS7Io8AN PinpgRV/wimV4PiwsYyuIqplIyKB0TpqDniR45BLSYz202l2GuBhu7VcUcNP A+wL7zmPf4/cO3foU9YqELxVGVhETT59aE5DsA+Dy4FQnxCTGERjn4HkTgNx FqVb3KRkcKekcbyC4nP5iIYYvjyCC34vjd7zT2j1ttZZJQJ11q00o1OwGJMG e8LYPD1e/4vU+iGdfuDI6e7YhdQTROYcM1ncgmU1XlD0dQuyS4nmLiV47LVR w+OEifv2UGRJ9uwbbHjQehAkot9si+ZMoUxx7lOoNtTAtYk0Noi4wCnbRp6E c14ZalI7oJBdkqQrA7svOxo0TYcmbEsAABIdoR5cxumII6bjIacrIKMo2V+0 sfXfZmv07wNTitoKtv1iMnjrCLj0bHhReZQnI3ymN1vpM1PtYxDoZFDpRZnD VaMGpoyq++vdrT0Vbe7vdXdccZ+VEM2k/aoUK05DaKilVDFLKdhpaD52bBjm 15ajwafvLvW9TNgx0ubmqiyrPElWXWBFXLnjwqJZgalAsQioLXJQlamNQqv6 KsBzuNLcyMFk453LuaqC+d96mhNewMvofktc04KecWcibTthNtgkATXScmtE veSmmCzvS2vEEXa5BIt4IK3Csk72vSMc828Ex/ze4eiLmKP7M11V+s7vrW9J cUxODnCLMEOG7gPsiEWnqCJfkMPfM3xlDmSvbmdXdRerfh+Bo1KxFGoQsqlQ q2QliK6MePySKZBB4NxrrLPnBj/NzadAqUY2hNnc8SMJzKN0HvzHYxescKeX pGuZsXyfu9/nTb+nHjybY+FpBhqZHUdid+TzPSrs3Bp9nsvnOZMHNzqtgYph pC8jO+rij+R05s5HqwuQEDavau3U+Bl2WM+NMXT+ALkeQPQY+EYumMgV+jyE r5fJG+J776mOFf9d6HRZlxGQng3qN770tNpl4ZUj8nNd+tKWl0NSmNOFBCS3 BMRALgjlpa+cRkvL77Q0OZMhokmBXU0XHbUWrToYjbV1sEvevdub677h3Qmp aMbSGZ/vkIbAMj+LvEI0N9yU9bPzdL51afRqDf/nimrLOpbMjw/UqGKSiE5z o0Zdiq111mY6uKNviAltvIs214mLnBOrY/HZJDX8PTTnWs3ihnEOvuP2m4/9 /a9xMHK0D0tufkg/h4dpf32fqrLsb++asJjnGVbamomJ9go9qDyrrVolRRWd kCtTVQAniKEo7YdUIAB1/qOxdjes15g+bHM9AXEcYB2YEyBguasg7lLtBdtB n30/53BbtG+OYybDfz5AeQ7mjquOtwBNysMtGM3efAtX5lBVIxuyPMyfMj2V KGgBLT17xgXoFnls5jdXOSZPQT9J/FnntlltJ76bO9vr64P93X5/Ox5sxRvD hb6bgZ5qHTgDbSlKagNjyiP4sa2Ddc/xdft0iiU/TjD+/2J2yS7w++q3EaUE 6Cr2uIZjywoS/ITCydvU2Dg8BF008Sttpm/S8sLRDkoqa1QlYBJKUyTy5O3p 8Yez7wl7YhB0xkO7AJ7TA7Gh8f39QK6GuolbL7DgbMuvL+zxqxte1E7fq3+b caoz+i0tkPzArwP4laIG6TeJgILfHQXp91adhOewdjKi32rQUoqqOQ3rWooe R/1ZPTp7pL5Xj14+avgdCXh3+E50vrVf1nxYVY5zoFqdV563PPdWW94aA13J nTMfAynHGKMgtS7hIN9HA5ph33WEkUcXruJ/PrIBhnUtXnVdxOq6mKUIs4xX va+irTyXeYjzl7c/5abGE3BuK+mwunWW31DNdtG6t9yThbjpno6zcc8U1/jn 7S17nOFveOWRxvlOGzvHcdCzZ7rxXW4I1NyP8Dqe86Fn3ljwZWN8mYsDDV2K mu79P2vfyU+CNhsdLfCndZMIb7TrWVF5KY4nleee74Xhh2tv3tP3r0/g4lX1 E0f+ixkqBtA8hkGY5pprt/R21OTaTQsK4sMv8Zp90HVunVJ/HDjL1gaXYgkc 6kbIaRrfC7EtjWbAW7sK/txruPz85u3QX4+e//jjm/P3R6+O5+4TC1sSiIsb VeF4pf7QWqj8kLCd85oIn7sXX27F+3v9/t7+1v7W7laVz53biWVx5zYj9ccm BdHAD4xsXimlhteSDAsWePI5AMn1JCcBAM3Wh6THodLpbOOjHHWs/PYMTJI4 hpvzI7zwU07AZ6JpsJPvnXzR1sV4FfN1TfwAU+fLP3QUDnXhfeclmnZIuj/y Q++b//S662NUKT05OT0TTJgzR04622dt1iIozJ1TeR4OVVqdN6fKPJQp13I5 iq8K9OQl/VuiLlLMwXGZjlMuHnaRYCJG/ORLFRNMHJYo0DYOtrobu155AU5B R4LQKz+RH3z8JxqJ0jXqp27uxCuJhuyov8OM2R6PJ/ElnBAcXtqyyVwnYkP1 CDZnSsLf6ySnQA7WgRiILoQggOkVes48XoUykrkTidZWl2kO815tl3MYklsW xeOudiSgPVoIBEoE4QwdzJ2mW3cHOHjvHgenvFqk27v3PqWg2zKb0HgSIe8K TDYdzi2JMI6Wg/G3m4qBuGS5w1IVR0TEgXAM8ozrEiJfxbEKkpWZU1y38TAP 02IwKwrOeqc+HB+9eHPcYQeGjS0i+psbu/iz8Yn1MPBVKONphyIk65lee1qn 6bCC0YEMquOOS+Uryj63O2hbPsxegHQLDb+e4TuEtOFllTAj2PXduvWB6qTg JPKh8/adv3j3t7fA9HBlAMAbVudbMzZSRHiMp75VTvZXodyIXmtqy6Ifu6bJ K7xXGnaxW9fFPJw1cqCLsoyXm/vdTUzjuLXR3dlbBi9lMIJC2y1+y97phVNh 0ymMKwZgSj3FIT55cjUbwRj6tnyr58pNMcFDnI7dnk44hJezC2MNmUmc5kWp ck7BOSJIEuXaD3w7Y2oRSSBRHaW+lE6XvohVcROPRuoBEQGUBR9I8RzkIKc6 jfI/ZinWmkgSSiptCm7X14AQSJ3VN3LKXLKnKSdmZtARNeJ0qlx45mg0vabS EybNVwjWXTUZnsN8uTqOrrcBa6GSY9TRtL7gSF8dyURi9FrDzeUEypcZAgF2 8mhq6gG5feBk2xfJJU6IqpXEI/6y0+UaRRq2Alazcl6b8RmhdBZSfjkGeRdr +GBGewAjfDKKP2POPUo9fTOBN1j1hxLh6zk9gEtlPIzz4QNm16jKj3WXkw5Q JMzTC65NBBIJ8YHXlE8Fh+X8+glVX0n6V2RS5eiq82I6BBwFmfg2Twlqfzt6 rdikVHxv9jwqF1yN5vwlz+jDP1SJFP0hhly2x/7hYlK/328p9UftgJH3V+2A PkZiAsM/NDtc13lNj9XOuRf1vwxOev3qccoPlfpkEKJ+KuEZVJ9Gtts/WmU0 pOUC0rgY++ArxzJLomVL17YGMCct9kZEhJaE6/Z2EMlRKka5t+Yicy3zU/L2 OefSKUy4VJ0Ns+EQNgSKRqFTFdUGMtGmN+3aSSxHfc/tFG5Mc7mGLvGOf6U2 W2qt9Zo8fprMCrhNbhstmt68nZgHsJdYSx6xRkAlj49/iwfld8j0ljqqMVCW Obog8nTqerNOFy2S1epQb1H2ZByBCk+FmAVfokdZOjyZqjdAKtOqxPTUrYIQ Ou30NjrW5u/mJ0ZpF+YZmKPHq6DCJjzHaoAlzbFXYayXmWEAmu7wdY4rLOEG rPgg59clVPk+CBV0rgqvt4SXsFQXwYE5xFHntoftMzz7goNFeoveYmSjhUPD BV4bc71+iCQ06SMAr1bNREMyQlW80RDj4/B35vt3tjCX6ubBenfzoDnbDzdj IzmF5rtWT7aU3VXo7/z5uzfvPxyfnh6/OD85O35z/v7dyduz4w+U/l/tI5Er lc+M0IhSDu/WddNY1UbHzYT5fvEciLUf0WEN/bQexgrr3wbbVN1dW0T0m+Me oUPduZHXDaA9p2llwbWe1MGrBEcy5+t9rm84qgM/94ITp24gPNQWfuFboTyI pnGuT5f0HJo9UOJFXASHQ9M4RkTlLFckkyqdP2Jrc7e7ua+irf3d7s5OtUCr qnMAYWX8h2T0Mh0lGMKidL2CSo5etACZrJ3a1x5z5rCAxFy0KIsfFV7NR1Jd 62/Flxs/PaqVD3WnrDmum72nUSq5qSi1/tvmOlLmMCjYrmiKlKGwymXETFFi k+OHpRysmp5S6Vo07OBMs7EVAXEQluhC1nNhc9kQCR/kWFFnepskWPiM6rGn MfALunxZubruEnvk1G28rM9VFI8riY18kzZPmDsSOYy0DgIb+kIXAPLn4fRy WDbb6HDYnskvzZ4LNhc1+4i4f+ORqXSkHQm/hKDNYRS6FKlg0vdas5nllRKx 8MhlkFAryrjMPZSa00NgcEpjH4apeggbBjLNKAydyHMtFyt9dbGuF8Vh3aUy f/g1Ln/FeMK5DqhgGJYIkLz+cB6wKLCJ58tjSqxORUgZs/7Mx7u8o7WLc2Ip Efg0THV15PBzx2Vp41Qpw4Z+zDZ594mXQoPhQkcSlSxSeIxSjGZ8juQQNKBd EQfjtSQxxM8bv4T3kZE8RMzI8t9a/21rXYxlWzv7yOpsb++gzayW0pMBu2xn zTLtZ1l6cRF8mpNN1iEpj4yX/yNN0qyR0DHAst7rciqGRFRFPaIj+0hIk9SL y6bxiKyhsS7yZjL6w/siIXXon0ztbktwPNRyIodUkEww4LZ39zCX5g7AL1DC HO/vZ6jTPZ3Gg49VG7WFUCmPXJXEhXC/6/NvNcwepZICnBqmA/2tyFeFfgzI ZkHOIhjiPpeiAwB+SkbWQovXrdcdDhFar1rlvOYcnrq9vwMginb29rp7cyDF xnwqy8A+OjfJ9DobFoEtaq8CVg+fo/oa07WQePeMvbLf03Y7oO56RTg7Zaxs r14l09eAXJjinpzWy7117AXTXk2LY6qCTkyf1/SZ5N6shBVi3kP8lMjhWVYZ I/Shieig3Vxd5RxaModFHZW2ItCXTlbYZk/32p4aTk2ZNV6moxElsp/X2zOb X4uz2W9R9aHdjW3JZp/8htcQJYxE+sN07a/xaJaYXpU44ZfWWuCP7kq5BzTR vyeMLJr1oIJ0riOmHeySbEWk7h7Q9S0j2tvIT6j8KlAhFl0zvqJCbK/klsf7 gTVgvYKw1Vqwh2a2BB+c2jVcRcmYp+osgVMCOL0hBEqwlfAIumApPqIM4NAK JcFNo3Vy0yoAA3OhSbwUHKxMRJLG51QTRP4YkRuVfgN/OL06gLgy0thruMNO ACxtm4IeD2dpIpjhrnbjwxBxORmdiyGwuc5g5dfVMCDy4pPACW+K4QRPpnkX zXLItekMT/gnMB02vZM+BnjPVk+BYAy8f5PkV27J6aKadg6LUOsM95WXsUW/ uL7VhW11wckuSgiu5fVS9LmzYFe+ZL/QAL/pgNElEIOyIFkp71fdSbbSmqPF fwqyFLIqrK1Mf5dR/VVtxKOzIk9JO29J5a6xD6ltEu65phui5nubxE/ub+x0 93YCxPwHEOcJx1/GBbDao1EymAapY/gWeI7Z4OH0Bb8g5CBy9ykenA9hDz5L XpFns9FHXtIHqsJOdJ7hiiI79i88NxlvCZn1TnPYzNWCUuqmCqaPSmnlCZYa dvAIT1apb1+vTcaTpbpc/vRFjU5fXavS6XNkLAZKMLH6oVvRfTYe0Gm5pBx5 MWlDJhgLNfQMAX31Y8GmZhSnslmhYKeA5SANxJC6opSp0wwLDKeYuogrxF8k 2ONl7LoTIIlm31AyY+ryD5d5dmO9w8XB8gPLsoVhjN1PbBF5TvUHPWZj+Ojf kzzz+5b6Ihd4jgpZSZYPuegErttY37lIiPuxnfhPP/30PYvYYyrRG5Odh1c7 VJ8AThqUOJ/v3r86//H0+Pzk7euTt8cKvYxLVe0FTsFdWolKuIlQc9G+Nml+ 9RhIDXotSFxYAnoCt5ErP1vhnrOCpvrlfqv1KSTu4AHA4MHUxPVyaDwyzf4w +vEQC39TrAF9qOPqbRx4+bs/nqg2Tx1420/qoWr/5w8nr354dnLW6ajHjxXN USeDwJD1zX31xx9oXMIsRZv7HUrSXf1StTfw821TrjjFDCR7+CtGRtyCjJOo 9snpuXxzfnp81v7UkbhhGY9mtrvdwfX3nqaTcxAv02H/Ij0fZaQOrn1/neLo G7sdxWHIumV5+Y9tJzRfAINModwSZl83jTnDy66FPnyiykM8VOu/vYR/DoOf XOPet8vfPH1Kq3Q+dbHE5NlrhhzSXOMEdtwIJza2HZzY2F6AE5shnFCEEYsQ wr2hdcpkJ8ObCze491JMUJA5CiudKbUMQ+Z6ToZlL0o8f329Bx1YI05aKR31 9FTpBjSYzECKJzN0vzgWCby1yCWOnLjwuib3tQLrzMUjvNdUAYKG+C7lWGzM IZRUypGqP6K1kOo63cZjSbTv3gzDPvD9U9Zrs/YNAJuTBpN8wmYTVNCxB9fK /wY0P9EVHq8BAA== --------------040005080904030301090602 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --------------040005080904030301090602--