Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1YsaOB-0001yN-90 for pgsql-hackers@arkaria.postgresql.org; Wed, 13 May 2015 17:24:11 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1YsaOA-0005yp-OU for pgsql-hackers@arkaria.postgresql.org; Wed, 13 May 2015 17:24:10 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1YsaO9-0005yi-90 for pgsql-hackers@postgresql.org; Wed, 13 May 2015 17:24:09 +0000 Received: from mail-wg0-x230.google.com ([2a00:1450:400c:c00::230]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1YsaO5-0001on-2N for pgsql-hackers@postgresql.org; Wed, 13 May 2015 17:24:08 +0000 Received: by wgin8 with SMTP id n8so50847228wgi.0 for ; Wed, 13 May 2015 10:24:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:reply-to:user-agent:mime-version:cc :subject:references:in-reply-to:content-type; bh=ReqoTusT5Yow0wIoWhSqTkBQFMs1f2fH2BlXGR4Jwxc=; b=MjK02R7jddOwUQmt7kb44fWlfD1uwvnLaksUMLj9Rit1telwB4GE/yrda60cHt4NuQ CG5oeE9jkw+KNiLf+WpN8rT+eNkQpUBVRmnG7yracXVxG2iBA8cOXFKB0cJtJ6ncBopU JZ4VaAn9guFW6wUvnfoNI9bNxTjqiGAW/8ydGlhRgbZG8F99Qsbs0n9/gI7tdXkNz7ox JemZjBZvwX2uWPtqMyEdJDRKn8X6LyHU2sBUyoV/JsgLxLvuCDRP211qywPUc/4oXsRH 7pp6fgzCaAps+lYebkD46h83aZs1vDQ4hcAaS6Od65qqapMSd1AAqOrPGM3BcyspdlYw QmpA== X-Received: by 10.195.18.103 with SMTP id gl7mr1447wjd.34.1431537842608; Wed, 13 May 2015 10:24:02 -0700 (PDT) Received: from [192.168.1.99] (dsl-hkibrasgw1-58c38f-82.dhcp.inet.fi. [88.195.143.82]) by mx.google.com with ESMTPSA id r9sm33952743wjo.26.2015.05.13.10.24.00 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 May 2015 10:24:01 -0700 (PDT) Message-ID: <555388AF.1080103@iki.fi> Date: Wed, 13 May 2015 20:23:59 +0300 From: Heikki Linnakangas Reply-To: hlinnaka@iki.fi User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.6.0 MIME-Version: 1.0 CC: Michael Paquier , Venkata Balaji N , Andres Freund , Fujii Masao , Borodin Vladimir , PostgreSQL-development Subject: Re: Streaming replication and WAL archive interactions References: <548AF1CB.80702@vmware.com> <689EB259-44C2-4820-B901-4F6B1C55A1E4@simply.name> <549083D6.1000301@vmware.com> <54949108.3030109@vmware.com> <552FA38F.9060005@iki.fi> <5535FE71.1010905@iki.fi> <55362CAD.2000207@iki.fi> <553741FE.1080403@iki.fi> <554CB84E.3070406@iki.fi> <5550D20D.6090703@iki.fi> <55534930.4040905@iki.fi> In-Reply-To: Content-Type: multipart/mixed; boundary="------------080203080908070303070600" X-Pg-Spam-Score: 0.3 (/) 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. --------------080203080908070303070600 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 05/13/2015 04:29 PM, Robert Haas wrote: > On Wed, May 13, 2015 at 8:53 AM, Heikki Linnakangas wrote: >> Our manual says that archive_command should refuse to overwrite an existing >> file. But to work-around the double-archival problem, where the same file is >> archived twice, it would be even better if it would simply return success if >> the file exists, *and has identical contents*. I don't know how to code that >> logic in a simple one-liner though. > > This is why we really, really need that pg_copy command that was > proposed a while back. Yeah.. I took a step back and looked at the big picture again: If we just implement the "always" mode, and you have a pg_copy command or similar that handles duplicates correctly, you don't necessarily need the "shared" mode at all. You can just set archive_command='always', and have the master and standby archive to the same location. As long as the archive_command works correctly and is race-free, that should work. I cut back the patch to implement just the "always" mode. The "shared" mode might still make sense as a future patch, as I think it's easier to understand and has less strict requirements for the archive_command, but let's take one step at a time. So attached is a patch that just adds the "always" mode. This is pretty close to what Fujii submitted long ago. - Heikki --------------080203080908070303070600 Content-Type: application/x-patch; name="0001-Add-archive_mode-always-option.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-archive_mode-always-option.patch" RnJvbSA3MTMzMjkwMDI0N2E4YzY4YTYxZmNmNjA3ODJjYjM1Y2Y2NjJiNzU2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFr YW5nYXMgPGhlaWtraS5saW5uYWthbmdhc0Bpa2kuZmk+CkRhdGU6IFRodSwg MTYgQXByIDIwMTUgMTQ6NDA6MjQgKzAzMDAKU3ViamVjdDogW1BBVENIIDEv MV0gQWRkIGFyY2hpdmVfbW9kZT0nYWx3YXlzJyBvcHRpb24uCgpJbiAnYWx3 YXlzJyBtb2RlLCB0aGUgc3RhbmRieSdzIFdBTCBhcmNoaXZlIGlzIHRha2Vu IHRvIGJlIHNlcGFyYXRlIGZyb20gdGhlCnByaW1hcnkncywgYW5kIHRoZSBz dGFuZGJ5IGluZGVwZW5kZW50bHkgYXJjaGl2ZXMgYWxsIGZpbGVzIGl0IHJl Y2VpdmVzIGZyb20KdGhlIHByaW1hcnkuCgpGdWppaSBNYXNhbyBhbmQgbWUu Ci0tLQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAgICAgICAgICAg ICAgICAgIHwgMTMgKysrKysrKy0tCiBkb2Mvc3JjL3NnbWwvaGlnaC1hdmFp bGFiaWxpdHkuc2dtbCAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKysr KysrKysrKysrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cu YyAgICAgICAgICAgICB8IDIyICsrKysrKysrKysrKystLQogc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYyAgICAgIHwgIDUgKysr LQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgICAgICAg ICAgIHwgMzcgKysrKysrKysrKysrKysrKysrLS0tLS0tLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyAgICAgICAgIHwgMTAgKysr KystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyAgICAgICAgICAg ICAgICAgIHwgMjEgKysrKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC91dGls cy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgMiArLQogc3JjL2lu Y2x1ZGUvYWNjZXNzL3hsb2cuaCAgICAgICAgICAgICAgICAgICAgIHwgMTMg KysrKysrKy0tCiA5IGZpbGVzIGNoYW5nZWQsIDEzMyBpbnNlcnRpb25zKCsp LCAyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv Y29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXgg MGQ4NjI0YS4uNTU0OWI3ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Nv bmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAt MjUyMSw3ICsyNTIxLDcgQEAgaW5jbHVkZV9kaXIgJ2NvbmYuZCcKIAogICAg IDx2YXJpYWJsZWxpc3Q+CiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1h cmNoaXZlLW1vZGUiIHhyZWZsYWJlbD0iYXJjaGl2ZV9tb2RlIj4KLSAgICAg IDx0ZXJtPjx2YXJuYW1lPmFyY2hpdmVfbW9kZTwvdmFybmFtZT4gKDx0eXBl PmJvb2xlYW48L3R5cGU+KQorICAgICAgPHRlcm0+PHZhcm5hbWU+YXJjaGl2 ZV9tb2RlPC92YXJuYW1lPiAoPHR5cGU+ZW51bTwvdHlwZT4pCiAgICAgICA8 aW5kZXh0ZXJtPgogICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmFyY2hpdmVf bW9kZTwvPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KICAg ICAgIDwvaW5kZXh0ZXJtPgpAQCAtMjUzMCw3ICsyNTMwLDE2IEBAIGluY2x1 ZGVfZGlyICdjb25mLmQnCiAgICAgICAgPHBhcmE+CiAgICAgICAgIFdoZW4g PHZhcm5hbWU+YXJjaGl2ZV9tb2RlPC8+IGlzIGVuYWJsZWQsIGNvbXBsZXRl ZCBXQUwgc2VnbWVudHMKICAgICAgICAgYXJlIHNlbnQgdG8gYXJjaGl2ZSBz dG9yYWdlIGJ5IHNldHRpbmcKLSAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3Vj LWFyY2hpdmUtY29tbWFuZCI+LgorICAgICAgICA8eHJlZiBsaW5rZW5kPSJn dWMtYXJjaGl2ZS1jb21tYW5kIj4uIEluIGFkZGl0aW9uIHRvIDxsaXRlcmFs Pm9mZjwvPiwKKyAgICAgICAgdG8gZGlzYWJsZSwgdGhlcmUgYXJlIHR3byBt b2RlczogPGxpdGVyYWw+b248Lz4sIGFuZAorICAgICAgICA8bGl0ZXJhbD5h bHdheXM8Lz4uIER1cmluZyBub3JtYWwgb3BlcmF0aW9uLCB0aGVyZSBpcyBu bworICAgICAgICBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBtb2Rlcywg YnV0IHdoZW4gc2V0IHRvIDxsaXRlcmFsPmFsd2F5czwvPgorICAgICAgICB0 aGUgV0FMIGFyY2hpdmVyIGlzIGVuYWJsZWQgYWxzbyBkdXJpbmcgYXJjaGl2 ZSByZWNvdmVyeSBvciBzdGFuZGJ5CisgICAgICAgIG1vZGUuIEluIDxsaXRl cmFsPmFsd2F5czwvPiBtb2RlLCBhbGwgZmlsZXMgcmVzdG9yZWQgZnJvbSB0 aGUgYXJjaGl2ZQorICAgICAgICBvciBzdHJlYW1lZCB3aXRoIHN0cmVhbWlu ZyByZXBsaWNhdGlvbiB3aWxsIGJlIGFyY2hpdmVkIChhZ2FpbikuIFNlZQor ICAgICAgICA8eHJlZiBsaW5rZW5kPSJjb250aW51b3VzLWFyY2hpdmluZy1p bi1zdGFuZGJ5Ij4gZm9yIGRldGFpbHMuCisgICAgICAgPC9wYXJhPiAgCisg ICAgICAgPHBhcmE+CiAgICAgICAgIDx2YXJuYW1lPmFyY2hpdmVfbW9kZTwv PiBhbmQgPHZhcm5hbWU+YXJjaGl2ZV9jb21tYW5kPC8+IGFyZQogICAgICAg ICBzZXBhcmF0ZSB2YXJpYWJsZXMgc28gdGhhdCA8dmFybmFtZT5hcmNoaXZl X2NvbW1hbmQ8Lz4gY2FuIGJlCiAgICAgICAgIGNoYW5nZWQgd2l0aG91dCBs ZWF2aW5nIGFyY2hpdmluZyBtb2RlLgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2hpZ2gtYXZhaWxhYmlsaXR5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvaGln aC1hdmFpbGFiaWxpdHkuc2dtbAppbmRleCBhMTdmNTU1Li5lOTNiNzExIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbApA QCAtMTIyMCw2ICsxMjIwLDQ1IEBAIHByaW1hcnlfc2xvdF9uYW1lID0gJ25v ZGVfYV9zbG90JwogCiAgICA8L3NlY3QzPgogICA8L3NlY3QyPgorCisgIDxz ZWN0MiBpZD0iY29udGludW91cy1hcmNoaXZpbmctaW4tc3RhbmRieSI+Cisg ICA8dGl0bGU+Q29udGludW91cyBhcmNoaXZpbmcgaW4gc3RhbmRieTwvdGl0 bGU+CisKKyAgIDxpbmRleHRlcm0+CisgICAgIDxwcmltYXJ5PmNvbnRpbnVv dXMgYXJjaGl2aW5nPC9wcmltYXJ5PgorICAgICA8c2Vjb25kYXJ5PmluIHN0 YW5kYnk8L3NlY29uZGFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8cGFy YT4KKyAgICAgV2hlbiBjb250aW51b3VzIFdBTCBhcmNoaXZpbmcgaXMgdXNl ZCBpbiBhIHN0YW5kYnksIHRoZXJlIGFyZSB0d28KKyAgICAgZGlmZmVyZW50 IHNjZW5hcmlvczogdGhlIFdBTCBhcmNoaXZlIGNhbiBiZSBzaGFyZWQgYmV0 d2VlbiB0aGUgcHJpbWFyeQorICAgICBhbmQgdGhlIHN0YW5kYnksIG9yIHRo ZSBzdGFuZGJ5IGNhbiBoYXZlIGl0cyBvd24gV0FMIGFyY2hpdmUuIFdoZW4K KyAgICAgdGhlIHN0YW5kYnkgaGFzIGl0cyBvd24gV0FMIGFyY2hpdmUsIHNl dCA8dmFybmFtZT5hcmNoaXZlX21vZGU8L3Zhcm5hbWU+CisgICAgIHRvIDxs aXRlcmFsPmFsd2F5czwvbGl0ZXJhbD4sIGFuZCB0aGUgc3RhbmRieSB3aWxs IGNhbGwgdGhlIGFyY2hpdmUKKyAgICAgY29tbWFuZCBmb3IgZXZlcnkgV0FM IHNlZ21lbnQgaXQgcmVjZWl2ZXMsIHdoZXRoZXIgaXQncyBieSByZXN0b3Jp bmcKKyAgICAgZnJvbSB0aGUgYXJjaGl2ZSBvciBieSBzdHJlYW1pbmcgcmVw bGljYXRpb24uIFRoZSBzaGFyZWQgYXJjaGl2ZSBjYW4KKyAgICAgYmUgaGFu ZGxlZCBzaW1pbGFybHksIGJ1dCB0aGUgYXJjaGl2ZV9jb21tYW5kIHNob3Vs ZCB0ZXN0IGlmIHRoZSBmaWxlCisgICAgIGJlaW5nIGFyY2hpdmVkIGV4aXN0 cyBhbHJlYWR5LCBhbmQgaWYgdGhlIGV4aXN0aW5nIGZpbGUgaGFzIGlkZW50 aWNhbAorICAgICBjb250ZW50cy4gVGhpcyByZXF1aXJlcyBtb3JlIGNhcmUg aW4gdGhlIGFyY2hpdmVfY29tbWFuZCwgYXMgaXQgbXVzdAorICAgICBiZSBj YXJlZnVsIHRvIG5vdCBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZmlsZSB3aXRo IGRpZmZlcmVudCBjb250ZW50cywKKyAgICAgYnV0IHJldHVybiBzdWNjZXNz IGlmIHRoZSBleGFjdGx5IHNhbWUgZmlsZSBpcyBhcmNoaXZlZCB0d2ljZS4g QW5kCisgICAgIGFsbCB0aGF0IG11c3QgYmUgZG9uZSBmcmVlIG9mIHJhY2Ug Y29uZGl0aW9ucywgaWYgdHdvIHNlcnZlcnMgYXR0ZW1wdAorICAgICB0byBh cmNoaXZlIHRoZSBzYW1lIGZpbGUgYXQgdGhlIHNhbWUgdGltZS4KKyAgIDwv cGFyYT4KKworICAgPC9wYXJhPgorICAgICBJZiA8dmFybmFtZT5hcmNoaXZl X21vZGU8L3Zhcm5hbWU+IGlzIHNldCB0byA8bGl0ZXJhbD5vbjwvPiwgdGhl CisgICAgIGFyY2hpdmVyIGlzIG5vdCBlbmFibGVkIGR1cmluZyByZWNvdmVy eSBvciBzdGFuZGJ5IG1vZGUuIElmIHRoZSBzdGFuZGJ5CisgICAgIHNlcnZl ciBpcyBwcm9tb3RlZCwgaXQgd2lsbCBzdGFydCBhcmNoaXZpbmcgYWZ0ZXIg dGhlIHByb21vdGlvbiwgYnV0CisgICAgIHdpbGwgbm90IGFyY2hpdmUgYW55 IFdBTCBpdCBkaWQgbm90IGdlbmVyYXRlIGl0c2VsZi4gVG8gZ2V0IGEgY29t cGxldGUKKyAgICAgc2VyaWVzIG9mIFdBTCBmaWxlcyBpbiB0aGUgYXJjaGl2 ZSwgeW91IG11c3QgZW5zdXJlIHRoYXQgYWxsIFdBTCBpcworICAgICBhcmNo aXZlZCwgYmVmb3JlIGl0IHJlYWNoZXMgdGhlIHN0YW5kYnkuIFRoaXMgaXMg aW5oZXJlbnRseSB0cnVlIHdpdGgKKyAgICAgZmlsZS1iYXNlZCBsb2cgc2hp cHBpbmcsIGFzIHRoZSBzdGFuZGJ5IGNhbiBvbmx5IHJlc3RvcmUgZmlsZXMg dGhhdAorICAgICBhcmUgZm91bmQgaW4gdGhlIGFyY2hpdmUsIGJ1dCBub3Qg aWYgc3RyZWFtaW5nIHJlcGxpY2F0aW9uIGlzIGVuYWJsZWQuCisgICAgIFdo ZW4gYSBzZXJ2ZXIgaXMgbm90IGluIHJlY292ZXJ5IG1vZGUsIHRoZXJlIGlz IG5vIGRpZmZlcmVuY2UgYmV0d2VlbgorICAgICA8bGl0ZXJhbD5vbjwvbGl0 ZXJhbD4gYW5kIDxsaXRlcmFsPmFsd2F5czwvbGl0ZXJhbD4gbW9kZXMuCisg ICA8L3BhcmE+CisgIDwvc2VjdDI+CiAgIDwvc2VjdDE+CiAKICAgPHNlY3Qx IGlkPSJ3YXJtLXN0YW5kYnktZmFpbG92ZXIiPgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IDVmMDU1MWEuLjA0ODViYjUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAg LTg2LDcgKzg2LDcgQEAgaW50CQkJbWluX3dhbF9zaXplID0gNTsJCS8qIDgw IE1CICovCiBpbnQJCQl3YWxfa2VlcF9zZWdtZW50cyA9IDA7CiBpbnQJCQlY TE9HYnVmZmVycyA9IC0xOwogaW50CQkJWExvZ0FyY2hpdmVUaW1lb3V0ID0g MDsKLWJvb2wJCVhMb2dBcmNoaXZlTW9kZSA9IGZhbHNlOworaW50CQkJWExv Z0FyY2hpdmVNb2RlID0gQVJDSElWRV9NT0RFX09GRjsKIGNoYXIJICAgKlhM b2dBcmNoaXZlQ29tbWFuZCA9IE5VTEw7CiBib29sCQlFbmFibGVIb3RTdGFu ZGJ5ID0gZmFsc2U7CiBib29sCQlmdWxsUGFnZVdyaXRlcyA9IHRydWU7CkBA IC0xNDAsNiArMTQwLDI0IEBAIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9l bnRyeSBzeW5jX21ldGhvZF9vcHRpb25zW10gPSB7CiAJe05VTEwsIDAsIGZh bHNlfQogfTsKIAorCisvKgorICogQWx0aG91Z2ggb25seSAib24iLCAib2Zm IiwgYW5kICJhbHdheXMiIGFyZSBkb2N1bWVudGVkLAorICogd2UgYWNjZXB0 IGFsbCB0aGUgbGlrZWx5IHZhcmlhbnRzIG9mICJvbiIgYW5kICJvZmYiLgor ICovCitjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgYXJjaGl2ZV9t b2RlX29wdGlvbnNbXSA9IHsKKwl7ImFsd2F5cyIsIEFSQ0hJVkVfTU9ERV9B TFdBWVMsIGZhbHNlfSwKKwl7Im9uIiwgQVJDSElWRV9NT0RFX09OLCBmYWxz ZX0sCisJeyJvZmYiLCBBUkNISVZFX01PREVfT0ZGLCBmYWxzZX0sCisJeyJ0 cnVlIiwgQVJDSElWRV9NT0RFX09OLCB0cnVlfSwKKwl7ImZhbHNlIiwgQVJD SElWRV9NT0RFX09GRiwgdHJ1ZX0sCisJeyJ5ZXMiLCBBUkNISVZFX01PREVf T04sIHRydWV9LAorCXsibm8iLCBBUkNISVZFX01PREVfT0ZGLCB0cnVlfSwK Kwl7IjEiLCBBUkNISVZFX01PREVfT04sIHRydWV9LAorCXsiMCIsIEFSQ0hJ VkVfTU9ERV9PRkYsIHRydWV9LAorCXtOVUxMLCAwLCBmYWxzZX0KK307CisK IC8qCiAgKiBTdGF0aXN0aWNzIGZvciBjdXJyZW50IGNoZWNrcG9pbnQgYXJl IGNvbGxlY3RlZCBpbiB0aGlzIGdsb2JhbCBzdHJ1Y3QuCiAgKiBCZWNhdXNl IG9ubHkgdGhlIGNoZWNrcG9pbnRlciBvciBhIHN0YW5kLWFsb25lIGJhY2tl bmQgY2FuIHBlcmZvcm0KQEAgLTc2Nyw3ICs3ODUsNyBAQCBzdGF0aWMgTWVt b3J5Q29udGV4dCB3YWxEZWJ1Z0N4dCA9IE5VTEw7CiAjZW5kaWYKIAogc3Rh dGljIHZvaWQgcmVhZFJlY292ZXJ5Q29tbWFuZEZpbGUodm9pZCk7Ci1zdGF0 aWMgdm9pZCBleGl0QXJjaGl2ZVJlY292ZXJ5KFRpbWVMaW5lSUQgZW5kVExJ LCBYTG9nU2VnTm8gZW5kTG9nU2VnTm8pOworc3RhdGljIHZvaWQgZXhpdEFy Y2hpdmVSZWNvdmVyeShUaW1lTGluZUlEIGVuZFRMSSwgWExvZ1JlY1B0ciBl bmRPZkxvZyk7CiBzdGF0aWMgYm9vbCByZWNvdmVyeVN0b3BzQmVmb3JlKFhM b2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIHN0YXRpYyBib29sIHJlY292ZXJ5 U3RvcHNBZnRlcihYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CiBzdGF0aWMg dm9pZCByZWNvdmVyeVBhdXNlc0hlcmUodm9pZCk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nYXJjaGl2ZS5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYwppbmRleCBm NDM1ZjY1Li40YzY5YjczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9nYXJjaGl2ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMKQEAgLTQ4MCw3ICs0ODAsMTAg QEAgS2VlcEZpbGVSZXN0b3JlZEZyb21BcmNoaXZlKGNoYXIgKnBhdGgsIGNo YXIgKnhsb2dmbmFtZSkKIAkgKiBDcmVhdGUgLmRvbmUgZmlsZSBmb3JjaWJs eSB0byBwcmV2ZW50IHRoZSByZXN0b3JlZCBzZWdtZW50IGZyb20gYmVpbmcK IAkgKiBhcmNoaXZlZCBhZ2FpbiBsYXRlci4KIAkgKi8KLQlYTG9nQXJjaGl2 ZUZvcmNlRG9uZSh4bG9nZm5hbWUpOworCWlmIChYTG9nQXJjaGl2ZU1vZGUg IT0gQVJDSElWRV9NT0RFX0FMV0FZUykKKwkJWExvZ0FyY2hpdmVGb3JjZURv bmUoeGxvZ2ZuYW1lKTsKKwllbHNlCisJCVhMb2dBcmNoaXZlTm90aWZ5KHhs b2dmbmFtZSk7CiAKIAkvKgogCSAqIElmIHRoZSBleGlzdGluZyBmaWxlIHdh cyByZXBsYWNlZCwgc2luY2Ugd2Fsc2VuZGVycyBtaWdodCBoYXZlIGl0IG9w ZW4sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3Rt YXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5j CmluZGV4IGE5ZjIwYWMuLjM2NDQwY2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC04MjgsOSArODI4LDkgQEAg UG9zdG1hc3Rlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJd3Jp dGVfc3RkZXJyKCIlczogbWF4X3dhbF9zZW5kZXJzIG11c3QgYmUgbGVzcyB0 aGFuIG1heF9jb25uZWN0aW9uc1xuIiwgcHJvZ25hbWUpOwogCQlFeGl0UG9z dG1hc3RlcigxKTsKIAl9Ci0JaWYgKFhMb2dBcmNoaXZlTW9kZSAmJiB3YWxf bGV2ZWwgPT0gV0FMX0xFVkVMX01JTklNQUwpCisJaWYgKFhMb2dBcmNoaXZl TW9kZSA+IEFSQ0hJVkVfTU9ERV9PRkYgJiYgd2FsX2xldmVsID09IFdBTF9M RVZFTF9NSU5JTUFMKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJtc2co IldBTCBhcmNoaXZhbCAoYXJjaGl2ZV9tb2RlPW9uKSByZXF1aXJlcyB3YWxf bGV2ZWwgXCJhcmNoaXZlXCIsIFwiaG90X3N0YW5kYnlcIiwgb3IgXCJsb2dp Y2FsXCIiKSkpOworCQkJCShlcnJtc2coIldBTCBhcmNoaXZhbCBjYW5ub3Qg YmUgZW5hYmxlZCB3aGVuIHdhbF9sZXZlbCBpcyBcIm1pbmltYWxcIiIpKSk7 CiAJaWYgKG1heF93YWxfc2VuZGVycyA+IDAgJiYgd2FsX2xldmVsID09IFdB TF9MRVZFTF9NSU5JTUFMKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJt c2coIldBTCBzdHJlYW1pbmcgKG1heF93YWxfc2VuZGVycyA+IDApIHJlcXVp cmVzIHdhbF9sZXZlbCBcImFyY2hpdmVcIiwgXCJob3Rfc3RhbmRieVwiLCBv ciBcImxvZ2ljYWxcIiIpKSk7CkBAIC0xNjQ1LDEzICsxNjQ1LDIxIEBAIFNl cnZlckxvb3Aodm9pZCkKIAkJCQlzdGFydF9hdXRvdmFjX2xhdW5jaGVyID0g ZmFsc2U7IC8qIHNpZ25hbCBwcm9jZXNzZWQgKi8KIAkJfQogCi0JCS8qIElm IHdlIGhhdmUgbG9zdCB0aGUgYXJjaGl2ZXIsIHRyeSB0byBzdGFydCBhIG5l dyBvbmUgKi8KLQkJaWYgKFhMb2dBcmNoaXZpbmdBY3RpdmUoKSAmJiBQZ0Fy Y2hQSUQgPT0gMCAmJiBwbVN0YXRlID09IFBNX1JVTikKLQkJCVBnQXJjaFBJ RCA9IHBnYXJjaF9zdGFydCgpOwotCi0JCS8qIElmIHdlIGhhdmUgbG9zdCB0 aGUgc3RhdHMgY29sbGVjdG9yLCB0cnkgdG8gc3RhcnQgYSBuZXcgb25lICov Ci0JCWlmIChQZ1N0YXRQSUQgPT0gMCAmJiBwbVN0YXRlID09IFBNX1JVTikK LQkJCVBnU3RhdFBJRCA9IHBnc3RhdF9zdGFydCgpOworCQkvKgorCQkgKiBJ ZiB3ZSBoYXZlIGxvc3QgdGhlIGFyY2hpdmVyLCB0cnkgdG8gc3RhcnQgYSBu ZXcgb25lLgorCQkgKgorCQkgKiBJZiBXQUwgYXJjaGl2aW5nIGlzIGVuYWJs ZWQgYWx3YXlzLCB3ZSB0cnkgdG8gc3RhcnQgYSBuZXcgYXJjaGl2ZXIKKwkJ ICogZXZlbiBkdXJpbmcgcmVjb3ZlcnkuCisJCSAqLworCQlpZiAoUGdBcmNo UElEID09IDAgJiYgd2FsX2xldmVsID49IFdBTF9MRVZFTF9BUkNISVZFKQor CQl7CisJCQlpZiAoKHBtU3RhdGUgPT0gUE1fUlVOICYmIFhMb2dBcmNoaXZl TW9kZSA+IEFSQ0hJVkVfTU9ERV9PRkYpIHx8CisJCQkJKChwbVN0YXRlID09 IFBNX1JFQ09WRVJZIHx8IHBtU3RhdGUgPT0gUE1fSE9UX1NUQU5EQlkpICYm CisJCQkJIFhMb2dBcmNoaXZlTW9kZSA9PSBBUkNISVZFX01PREVfQUxXQVlT KSkKKwkJCXsKKwkJCQlQZ0FyY2hQSUQgPSBwZ2FyY2hfc3RhcnQoKTsKKwkJ CX0KKwkJfQogCiAJCS8qIElmIHdlIG5lZWQgdG8gc2lnbmFsIHRoZSBhdXRv dmFjdXVtIGxhdW5jaGVyLCBkbyBzbyBub3cgKi8KIAkJaWYgKGF2bGF1bmNo ZXJfbmVlZHNfc2lnbmFsKQpAQCAtNDgwNyw2ICs0ODE1LDE3IEBAIHNpZ3Vz cjFfaGFuZGxlcihTSUdOQUxfQVJHUykKIAkJQXNzZXJ0KEJnV3JpdGVyUElE ID09IDApOwogCQlCZ1dyaXRlclBJRCA9IFN0YXJ0QmFja2dyb3VuZFdyaXRl cigpOwogCisJCS8qCisJCSAqIFN0YXJ0IHRoZSBhcmNoaXZlciBpZiB3ZSdy ZSByZXNwb25zaWJsZSBmb3IgKHJlLSlhcmNoaXZpbmcgcmVjZWl2ZWQKKwkJ ICogZmlsZXMuCisJCSAqLworCQlBc3NlcnQoUGdBcmNoUElEID09IDApOwor CQlpZiAod2FsX2xldmVsID49IFdBTF9MRVZFTF9BUkNISVZFICYmCisJCQlY TG9nQXJjaGl2ZU1vZGUgPT0gQVJDSElWRV9NT0RFX0FMV0FZUykKKwkJewor CQkJUGdBcmNoUElEID0gcGdhcmNoX3N0YXJ0KCk7CisJCX0KKwogCQlwbVN0 YXRlID0gUE1fUkVDT1ZFUlk7CiAJfQogCWlmIChDaGVja1Bvc3RtYXN0ZXJT aWduYWwoUE1TSUdOQUxfQkVHSU5fSE9UX1NUQU5EQlkpICYmCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYwppbmRleCA5 Yzc3MTBmLi40MWU1N2YyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi93YWxyZWNlaXZlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHJlY2VpdmVyLmMKQEAgLTU0MCw3ICs1NDAsMTAgQEAgV2Fs UmVjZWl2ZXJNYWluKHZvaWQpCiAJCQkgKiBiZWluZyBhcmNoaXZlZCBsYXRl ci4KIAkJCSAqLwogCQkJWExvZ0ZpbGVOYW1lKHhsb2dmbmFtZSwgcmVjdkZp bGVUTEksIHJlY3ZTZWdObyk7Ci0JCQlYTG9nQXJjaGl2ZUZvcmNlRG9uZSh4 bG9nZm5hbWUpOworCQkJaWYgKFhMb2dBcmNoaXZlTW9kZSAhPSBBUkNISVZF X01PREVfQUxXQVlTKQorCQkJCVhMb2dBcmNoaXZlRm9yY2VEb25lKHhsb2dm bmFtZSk7CisJCQllbHNlCisJCQkJWExvZ0FyY2hpdmVOb3RpZnkoeGxvZ2Zu YW1lKTsKIAkJfQogCQlyZWN2RmlsZSA9IC0xOwogCkBAIC04OTcsNyArOTAw LDEwIEBAIFhMb2dXYWxSY3ZXcml0ZShjaGFyICpidWYsIFNpemUgbmJ5dGVz LCBYTG9nUmVjUHRyIHJlY3B0cikKIAkJCQkgKiBmcm9tIGJlaW5nIGFyY2hp dmVkIGxhdGVyLgogCQkJCSAqLwogCQkJCVhMb2dGaWxlTmFtZSh4bG9nZm5h bWUsIHJlY3ZGaWxlVExJLCByZWN2U2VnTm8pOwotCQkJCVhMb2dBcmNoaXZl Rm9yY2VEb25lKHhsb2dmbmFtZSk7CisJCQkJaWYgKFhMb2dBcmNoaXZlTW9k ZSAhPSBBUkNISVZFX01PREVfQUxXQVlTKQorCQkJCQlYTG9nQXJjaGl2ZUZv cmNlRG9uZSh4bG9nZm5hbWUpOworCQkJCWVsc2UKKwkJCQkJWExvZ0FyY2hp dmVOb3RpZnkoeGxvZ2ZuYW1lKTsKIAkJCX0KIAkJCXJlY3ZGaWxlID0gLTE7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jCmluZGV4IDVmNzFkZWQu Ljk3YWNhNDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv Z3VjLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwpAQCAt Mzk2LDYgKzM5Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29uZmlnX2Vu dW1fZW50cnkgcm93X3NlY3VyaXR5X29wdGlvbnNbXSA9IHsKICAqIE9wdGlv bnMgZm9yIGVudW0gdmFsdWVzIHN0b3JlZCBpbiBvdGhlciBtb2R1bGVzCiAg Ki8KIGV4dGVybiBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgd2Fs X2xldmVsX29wdGlvbnNbXTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgY29uZmln X2VudW1fZW50cnkgYXJjaGl2ZV9tb2RlX29wdGlvbnNbXTsKIGV4dGVybiBj b25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgc3luY19tZXRob2Rfb3B0 aW9uc1tdOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9lbnRy eSBkeW5hbWljX3NoYXJlZF9tZW1vcnlfb3B0aW9uc1tdOwogCkBAIC0xNTMw LDE2ICsxNTMxLDYgQEAgc3RhdGljIHN0cnVjdCBjb25maWdfYm9vbCBDb25m aWd1cmVOYW1lc0Jvb2xbXSA9CiAJfSwKIAogCXsKLQkJeyJhcmNoaXZlX21v ZGUiLCBQR0NfUE9TVE1BU1RFUiwgV0FMX0FSQ0hJVklORywKLQkJCWdldHRl eHRfbm9vcCgiQWxsb3dzIGFyY2hpdmluZyBvZiBXQUwgZmlsZXMgdXNpbmcg YXJjaGl2ZV9jb21tYW5kLiIpLAotCQkJTlVMTAotCQl9LAotCQkmWExvZ0Fy Y2hpdmVNb2RlLAotCQlmYWxzZSwKLQkJTlVMTCwgTlVMTCwgTlVMTAotCX0s Ci0KLQl7CiAJCXsiaG90X3N0YW5kYnkiLCBQR0NfUE9TVE1BU1RFUiwgUkVQ TElDQVRJT05fU1RBTkRCWSwKIAkJCWdldHRleHRfbm9vcCgiQWxsb3dzIGNv bm5lY3Rpb25zIGFuZCBxdWVyaWVzIGR1cmluZyByZWNvdmVyeS4iKSwKIAkJ CU5VTEwKQEAgLTM1NTIsNiArMzU0MywxNiBAQCBzdGF0aWMgc3RydWN0IGNv bmZpZ19lbnVtIENvbmZpZ3VyZU5hbWVzRW51bVtdID0KIAl9LAogCiAJewor CQl7ImFyY2hpdmVfbW9kZSIsIFBHQ19QT1NUTUFTVEVSLCBXQUxfQVJDSElW SU5HLAorCQkJZ2V0dGV4dF9ub29wKCJBbGxvd3MgYXJjaGl2aW5nIG9mIFdB TCBmaWxlcyB1c2luZyBhcmNoaXZlX2NvbW1hbmQuIiksCisJCQlOVUxMCisJ CX0sCisJCSZYTG9nQXJjaGl2ZU1vZGUsCisJCUFSQ0hJVkVfTU9ERV9PRkYs IGFyY2hpdmVfbW9kZV9vcHRpb25zLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJ fSwKKworCXsKIAkJeyJ0cmFjZV9yZWNvdmVyeV9tZXNzYWdlcyIsIFBHQ19T SUdIVVAsIERFVkVMT1BFUl9PUFRJT05TLAogCQkJZ2V0dGV4dF9ub29wKCJF bmFibGVzIGxvZ2dpbmcgb2YgcmVjb3ZlcnktcmVsYXRlZCBkZWJ1Z2dpbmcg aW5mb3JtYXRpb24uIiksCiAJCQlnZXR0ZXh0X25vb3AoIkVhY2ggbGV2ZWwg aW5jbHVkZXMgYWxsIHRoZSBsZXZlbHMgdGhhdCBmb2xsb3cgaXQuIFRoZSBs YXRlciIKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCAxMTA5ODNmLi43YmVhNjhh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9w b3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC0yMDYsNyArMjA2LDcgQEAKIAog IyAtIEFyY2hpdmluZyAtCiAKLSNhcmNoaXZlX21vZGUgPSBvZmYJCSMgYWxs b3dzIGFyY2hpdmluZyB0byBiZSBkb25lCisjYXJjaGl2ZV9tb2RlID0gb2Zm CQkjIGFsbG93cyBhcmNoaXZpbmcgdG8gYmUgZG9uZTsgb2ZmLCBvbiwgb3Ig YWx3YXlzCiAJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAjYXJj aGl2ZV9jb21tYW5kID0gJycJCSMgY29tbWFuZCB0byB1c2UgdG8gYXJjaGl2 ZSBhIGxvZ2ZpbGUgc2VnbWVudAogCQkJCSMgcGxhY2Vob2xkZXJzOiAlcCA9 IHBhdGggb2YgZmlsZSB0byBhcmNoaXZlCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9hY2Nlc3MveGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cu aAppbmRleCA5NjFlMDUwLi45NTY3Mzc5IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MveGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94 bG9nLmgKQEAgLTk4LDcgKzk4LDYgQEAgZXh0ZXJuIGludAl3YWxfa2VlcF9z ZWdtZW50czsKIGV4dGVybiBpbnQJWExPR2J1ZmZlcnM7CiBleHRlcm4gaW50 CVhMb2dBcmNoaXZlVGltZW91dDsKIGV4dGVybiBpbnQJd2FsX3JldHJpZXZl X3JldHJ5X2ludGVydmFsOwotZXh0ZXJuIGJvb2wgWExvZ0FyY2hpdmVNb2Rl OwogZXh0ZXJuIGNoYXIgKlhMb2dBcmNoaXZlQ29tbWFuZDsKIGV4dGVybiBi b29sIEVuYWJsZUhvdFN0YW5kYnk7CiBleHRlcm4gYm9vbCBmdWxsUGFnZVdy aXRlczsKQEAgLTEwOCw2ICsxMDcsMTUgQEAgZXh0ZXJuIGJvb2wgbG9nX2No ZWNrcG9pbnRzOwogCiBleHRlcm4gaW50CUNoZWNrUG9pbnRTZWdtZW50czsK IAorLyogQXJjaGl2ZSBtb2RlcyAqLwordHlwZWRlZiBlbnVtIEFyY2hpdmVN b2RlCit7CisJQVJDSElWRV9NT0RFX09GRiA9IDAsCS8qIGRpc2FibGVkICov CisJQVJDSElWRV9NT0RFX09OLAkJLyogZW5hYmxlZCB3aGlsZSBzZXJ2ZXIg aXMgcnVubmluZyBub3JtYWxseSAqLworCUFSQ0hJVkVfTU9ERV9BTFdBWVMJ CS8qIGVuYWJsZWQgYWx3YXlzIChldmVuIGR1cmluZyByZWNvdmVyeSkgKi8K K30gQXJjaGl2ZU1vZGU7CitleHRlcm4gaW50CVhMb2dBcmNoaXZlTW9kZTsK KwogLyogV0FMIGxldmVscyAqLwogdHlwZWRlZiBlbnVtIFdhbExldmVsCiB7 CkBAIC0xMTgsNyArMTI2LDggQEAgdHlwZWRlZiBlbnVtIFdhbExldmVsCiB9 IFdhbExldmVsOwogZXh0ZXJuIGludAl3YWxfbGV2ZWw7CiAKLSNkZWZpbmUg WExvZ0FyY2hpdmluZ0FjdGl2ZSgpCShYTG9nQXJjaGl2ZU1vZGUgJiYgd2Fs X2xldmVsID49IFdBTF9MRVZFTF9BUkNISVZFKQorI2RlZmluZSBYTG9nQXJj aGl2aW5nQWN0aXZlKCkgXAorCShYTG9nQXJjaGl2ZU1vZGUgPiBBUkNISVZF X01PREVfT0ZGICYmIHdhbF9sZXZlbCA+PSBXQUxfTEVWRUxfQVJDSElWRSkK ICNkZWZpbmUgWExvZ0FyY2hpdmVDb21tYW5kU2V0KCkgKFhMb2dBcmNoaXZl Q29tbWFuZFswXSAhPSAnXDAnKQogCiAvKgotLSAKMi4xLjQKCg== --------------080203080908070303070600 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 --------------080203080908070303070600--