Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cgB7M-0005mA-A9 for pgsql-performance@arkaria.postgresql.org; Tue, 21 Feb 2017 14:08:36 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cgB7L-0002u4-TC for pgsql-performance@arkaria.postgresql.org; Tue, 21 Feb 2017 14:08:35 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cgB5Z-0007jA-07 for pgsql-performance@postgresql.org; Tue, 21 Feb 2017 14:06:45 +0000 Received: from winex2.eldocomp.com ([205.159.99.53] helo=exchange.eldocomp.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cgB5U-0003PC-Nx for pgsql-performance@postgresql.org; Tue, 21 Feb 2017 14:06:42 +0000 Received: from WINEX1.eldocomp.com ([169.254.1.107]) by VsWinExh02.eldocomp.com ([172.21.0.65]) with mapi id 14.03.0279.002; Tue, 21 Feb 2017 07:06:38 -0700 From: John Gorman To: "pgsql-performance@postgresql.org" Subject: Re: Correct use of cursors for very large result sets in Postgres Thread-Topic: [PERFORM] Correct use of cursors for very large result sets in Postgres Thread-Index: AQHSiPPtRz4ESJUglUmaqA3WAd61g6Ftj4+AgABMvwCAAQBZAIAAo+mAgADtnwCAA4MOgIAABMCA//+NeeA= Date: Tue, 21 Feb 2017 14:06:37 +0000 Message-ID: <0A1B0B276DEE6441A2E68EB66D4540DAD71C69E9@WINEX1.eldocomp.com> References: <21063.1487349580@sss.pgh.pa.us> <26739.1487439829@sss.pgh.pa.us> <17679.1487683929@sss.pgh.pa.us> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.20.132.2] Content-Type: multipart/alternative; boundary="_000_0A1B0B276DEE6441A2E68EB66D4540DAD71C69E9WINEX1eldocompc_" MIME-Version: 1.0 X-Pg-Spam-Score: -1.9 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-performance Precedence: bulk Sender: pgsql-performance-owner@postgresql.org --_000_0A1B0B276DEE6441A2E68EB66D4540DAD71C69E9WINEX1eldocompc_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TXkgZXhwZXJpZW5jZSB3aXRoIGN1cnNvcnMgaW4gUG9zdGdyZVNRTCB3aXRoIEphdmEgaGFzIGJl ZW4gdG8gc3RheSBhd2F5IGZyb20gdGhlbS4gV2Ugc3VwcG9ydCAyIGRhdGFiYXNlcyB3aXRoIG91 ciBwcm9kdWN0LCBQb3N0Z3JlU1FMIChkZWZhdWx0KSBhbmQgU1FMIFNlcnZlci4gV2hpbGUgcmUt ZW5jcnlwdGluZyBkYXRhIGluIGEgZGF0YWJhc2UgdGhlIGFwcGxpY2F0aW9uIHVzZWQgY3Vyc29y cyB3aXRoIGEgZmV0Y2ggc2l6ZSBvZiAxMDAwLg0KDQpXb3JrZWQgcGVyZmVjdGx5IG9uIFNRTCBT ZXJ2ZXIgYW5kIG9uIFBvc3RncmVTUUwgdW50aWwgd2UgZ290IHRvIGEgUG9zdGdyZVNRTCB0YWJs ZSB3aXRoIG1vcmUgdGhhbiAxMSBtaWxsaW9uIHJvd3MuIEFmdGVyIHNwZW5kaW5nIHdlZWtzIHRy eWluZyB0byBmaWd1cmUgb3V0IHdoYXQgd2FzIGhhcHBlbmluZywgSSByZWFsaXplZCB0aGF0IHdo ZW4gaXQgZ2V0cyB0byBhIHRhYmxlIHdpdGggbW9yZSB0aGFuIDEwIG1pbGxpb24gcm93cyBmb3Ig c29tZSByZWFzb24sIHRoZSBjdXJzb3IgZnVuY3Rpb25hbGl0eSBqdXN0IHNpbGVudGx5IHN0b3Bw ZWQgd29ya2luZyBhbmQgaXQgd2FzIHJlYWRpbmcgdGhlIGVudGlyZSB0YWJsZS4gSSBhc2tlZCBh bm90aGVyIHZlcnkgc2VuaW9yIGFyY2hpdGVjdCB0byBsb29rIGF0IGl0IGFuZCBoZSBjYW1lIHRv IHRoZSBzYW1lIGNvbmNsdXNpb24uIEJlY2F1c2Ugb2YgbGltaXRlZCB0aW1lLCBJIGVuZGVkIHVw IHdvcmtpbmcgYXJvdW5kIGl0IHVzaW5nIGxpbWl0L29mZnNldC4NCg0KQWdhaW4gd2UgYXJlIHVz aW5nIEphdmEsIHNvIHRoZSBwcm9ibGVtIGNvdWxkIGp1c3QgYmUgaW4gdGhlIFBvc3RncmVTUUwg SkRCQyBkcml2ZXIuIEFsc28gd2Ugd2VyZSBvbiA5LjEgYXQgdGhlIHRpbWUuDQoNClJlZ2FyZHMN CkpvaG4NCg0KRnJvbTogcGdzcWwtcGVyZm9ybWFuY2Utb3duZXJAcG9zdGdyZXNxbC5vcmcgW21h aWx0bzpwZ3NxbC1wZXJmb3JtYW5jZS1vd25lckBwb3N0Z3Jlc3FsLm9yZ10gT24gQmVoYWxmIE9m IE1pa2UgQmVhdG9uDQpTZW50OiBUdWVzZGF5LCBGZWJydWFyeSAyMSwgMjAxNyA2OjQ5IEFNDQpU bzogcGdzcWwtcGVyZm9ybWFuY2VAcG9zdGdyZXNxbC5vcmcNClN1YmplY3Q6IFJlOiBbUEVSRk9S TV0gQ29ycmVjdCB1c2Ugb2YgY3Vyc29ycyBmb3IgdmVyeSBsYXJnZSByZXN1bHQgc2V0cyBpbiBQ b3N0Z3Jlcw0KDQpUaGFua3MsIFRvbS4NCg0KV291bGRuJ3QgdGhpcyBtZWFuIHRoYXQgY3Vyc29y cyBhcmUgbm90aWNlYWJseSBub24tb3B0aW1hbCBldmVuIGZvciBub3JtYWwgZGF0YSBzaXplcywg c2luY2UgdGhlIGVudGlyZSBkYXRhIHRvIGJlIHN0cmVhbWVkIGZyb20gdGhlIHRhYmxlIGlzIGFs d2F5cyBkdXBsaWNhdGVkIGludG8gYW5vdGhlciBidWZmZXIgYW5kIHRoZW4gc3RyZWFtZWQ/DQoN Cj4gaWYgeW91IHdhbnQgdGhlIHdob2xlIHF1ZXJ5IHJlc3VsdCBhdCBvbmNlLCB3aHkgYXJlIHlv dSBib3RoZXJpbmcgd2l0aCBhIGN1cnNvcj8NCg0KVGhlIFBvc3RncmVTUUwgZG9jcyAoaHR0cHM6 Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy85LjYvc3RhdGljL3BscGdzcWwtY3Vyc29ycy5odG1s I0FFTjY2NTUxKSBjbGVhcmx5IHJlY29tbWVuZCBjdXJzb3JzIGFzIGEgd2F5IHRvIHJldHVybiBh IHJlZmVyZW5jZSB0byBhIGxhcmdlIHJlc3VsdCBzZXQgZnJvbSBhIGZ1bmN0aW9uIChhcyBJIHVu ZGVyc3Rvb2QsIHRoaXMgaXMgcmVjb21tZW5kZWQgcHJlY2lzZWx5IGFzIGEgd2F5IHRvIGF2b2lk IHR1cGxlLWJhc2VkIGJ1ZmZlcmluZyBvZiB0aGUgZGF0YSkuDQoNClNvIGZvbGxvd2luZyB0aGF0 IGFkdmljZSwgaXQncyBub3QgdW5yZWFzb25hYmxlIHRoYXQgSSB3b3VsZCBhY3R1YWxseSBoYXZl IGEgY3Vyc29yIHRvIGEgbGFyZ2UgZGF0YXNldC4NCg0KVGhlbiwgSSB3b3VsZCBpZGVhbGx5IHdh bnQgdG8gYmUgYWJsZSB0byBmZXRjaCB0aGUgZGF0YSBmcm9tIHRoYXQgY3Vyc29yIHdpdGhvdXQg dGhlIGVudGlyZSBkYXRhIGdldHRpbmcgZHVwbGljYXRlZCAoZXZlbiBpZiBvbmx5IGEgYml0IGF0 IGEgdGltZSBpbnN0ZWFkIG9mIGFsbCBhdCBvbmNlLCB3aGljaCBzZWVtcyB0byBiZSB0aGUgYmVz dCBjYXNlIGJlaGF2aW91cikgYXMgSSBnby4NCg0KQWRkaXRpb25hbGx5LCBJIHRob3VnaHQgdGhh dCBpZiBJIGhhZCBhIHN0cmVhbWluZyB1c2UtY2FzZSAod2hpY2ggSSBkbyksIGFuZCBhIHN0cmVh bWluZyBkYXRhLWFjY2VzcyBsYXllciAod2hpY2ggSSBkbyksIHRoZW4gc2luY2UgYFNFTEVDVCAq IEZST00gbGFyZ2VgIGlzIGFic29sdXRlbHkgZmluZSwgZW5kLXRvLWVuZCwgaW4gdGhhdCBzaXR1 YXRpb24sIHRoZW4gYnkgc3ltbWV0cnkgYW5kIHRoZSBwcmluY2lwbGUgb2YgbGVhc3QgYXN0b25p c2htZW50IGBGRVRDSCBBTEwgRlJPTSBjdXJzb3JgIG1pZ2h0IGJlIGZpbmUgdG9vLg0KDQo= --_000_0A1B0B276DEE6441A2E68EB66D4540DAD71C69E9WINEX1eldocompc_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6eD0idXJuOnNjaGVtYXMtbWljcm9z b2Z0LWNvbTpvZmZpY2U6ZXhjZWwiIHhtbG5zOm09Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5j b20vb2ZmaWNlLzIwMDQvMTIvb21tbCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1o dG1sNDAiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9 InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRl bnQ9Ik1pY3Jvc29mdCBXb3JkIDE0IChmaWx0ZXJlZCBtZWRpdW0pIj4NCjxzdHlsZT48IS0tDQov KiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7 DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZh bWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQ0KQGZvbnQtZmFj ZQ0KCXtmb250LWZhbWlseTpDb25zb2xhczsNCglwYW5vc2UtMToyIDExIDYgOSAyIDIgNCAzIDIg NDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwg ZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglm b250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7 fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJ Y29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bh bi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6 cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTcN Cgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1pbHk6Q29uc29sYXM7 DQoJY29sb3I6IzFGNDk3RDsNCglmb250LXdlaWdodDpub3JtYWw7DQoJZm9udC1zdHlsZTpub3Jt YWw7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9u dC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7 c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRp di5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lm IGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9 IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxv OnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIx IiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkg bGFuZz0iRU4tVVMiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29y ZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6 MTEuMHB0O2ZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOiMxRjQ5N0QiPk15IGV4cGVyaWVuY2Ug d2l0aCBjdXJzb3JzIGluIFBvc3RncmVTUUwgd2l0aCBKYXZhIGhhcyBiZWVuIHRvIHN0YXkgYXdh eSBmcm9tIHRoZW0uIFdlIHN1cHBvcnQgMiBkYXRhYmFzZXMgd2l0aCBvdXIgcHJvZHVjdCwgUG9z dGdyZVNRTCAoZGVmYXVsdCkgYW5kIFNRTCBTZXJ2ZXIuIFdoaWxlIHJlLWVuY3J5cHRpbmcNCiBk YXRhIGluIGEgZGF0YWJhc2UgdGhlIGFwcGxpY2F0aW9uIHVzZWQgY3Vyc29ycyB3aXRoIGEgZmV0 Y2ggc2l6ZSBvZiAxMDAwLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OkNvbnNvbGFzO2Nv bG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OkNvbnNvbGFz O2NvbG9yOiMxRjQ5N0QiPldvcmtlZCBwZXJmZWN0bHkgb24gU1FMIFNlcnZlciBhbmQgb24gUG9z dGdyZVNRTCB1bnRpbCB3ZSBnb3QgdG8gYSBQb3N0Z3JlU1FMIHRhYmxlIHdpdGggbW9yZSB0aGFu IDExIG1pbGxpb24gcm93cy4gQWZ0ZXIgc3BlbmRpbmcgd2Vla3MgdHJ5aW5nIHRvIGZpZ3VyZSBv dXQgd2hhdCB3YXMgaGFwcGVuaW5nLA0KIEkgcmVhbGl6ZWQgdGhhdCB3aGVuIGl0IGdldHMgdG8g YSB0YWJsZSB3aXRoIG1vcmUgdGhhbiAxMCBtaWxsaW9uIHJvd3MgZm9yIHNvbWUgcmVhc29uLCB0 aGUgY3Vyc29yIGZ1bmN0aW9uYWxpdHkganVzdCBzaWxlbnRseSBzdG9wcGVkIHdvcmtpbmcgYW5k IGl0IHdhcyByZWFkaW5nIHRoZSBlbnRpcmUgdGFibGUuIEkgYXNrZWQgYW5vdGhlciB2ZXJ5IHNl bmlvciBhcmNoaXRlY3QgdG8gbG9vayBhdCBpdCBhbmQgaGUgY2FtZSB0byB0aGUgc2FtZQ0KIGNv bmNsdXNpb24uIEJlY2F1c2Ugb2YgbGltaXRlZCB0aW1lLCBJIGVuZGVkIHVwIHdvcmtpbmcgYXJv dW5kIGl0IHVzaW5nIGxpbWl0L29mZnNldC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpD b25zb2xhcztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls eTpDb25zb2xhcztjb2xvcjojMUY0OTdEIj5BZ2FpbiB3ZSBhcmUgdXNpbmcgSmF2YSwgc28gdGhl IHByb2JsZW0gY291bGQganVzdCBiZSBpbiB0aGUgUG9zdGdyZVNRTCBKREJDIGRyaXZlci4gQWxz byB3ZSB3ZXJlIG9uIDkuMSBhdCB0aGUgdGltZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls eTpDb25zb2xhcztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh bWlseTpDb25zb2xhcztjb2xvcjojMUY0OTdEIj5SZWdhcmRzPG86cD48L286cD48L3NwYW4+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u dC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6IzFGNDk3RCI+Sm9objxvOnA+PC9vOnA+PC9zcGFuPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv bnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAu MHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7 Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p bHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiBwZ3NxbC1wZXJm b3JtYW5jZS1vd25lckBwb3N0Z3Jlc3FsLm9yZyBbbWFpbHRvOnBnc3FsLXBlcmZvcm1hbmNlLW93 bmVyQHBvc3RncmVzcWwub3JnXQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5NaWtlIEJlYXRvbjxicj4N CjxiPlNlbnQ6PC9iPiBUdWVzZGF5LCBGZWJydWFyeSAyMSwgMjAxNyA2OjQ5IEFNPGJyPg0KPGI+ VG86PC9iPiBwZ3NxbC1wZXJmb3JtYW5jZUBwb3N0Z3Jlc3FsLm9yZzxicj4NCjxiPlN1YmplY3Q6 PC9iPiBSZTogW1BFUkZPUk1dIENvcnJlY3QgdXNlIG9mIGN1cnNvcnMgZm9yIHZlcnkgbGFyZ2Ug cmVzdWx0IHNldHMgaW4gUG9zdGdyZXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj5UaGFua3MsIFRvbS48YnI+DQo8YnI+DQpXb3VsZG4ndCB0aGlzIG1lYW4gdGhhdCBjdXJz b3JzIGFyZSBub3RpY2VhYmx5IG5vbi1vcHRpbWFsIGV2ZW4gZm9yIG5vcm1hbCBkYXRhIHNpemVz LCBzaW5jZSB0aGUgZW50aXJlIGRhdGEgdG8gYmUgc3RyZWFtZWQgZnJvbSB0aGUgdGFibGUgaXMg YWx3YXlzIGR1cGxpY2F0ZWQgaW50byBhbm90aGVyIGJ1ZmZlciBhbmQgdGhlbiBzdHJlYW1lZD88 bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwv bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsmbmJzcDs8 c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuNXB0Ij5pZiB5b3Ugd2FudCB0aGUgd2hvbGUgcXVlcnkg cmVzdWx0IGF0Jm5ic3A7b25jZSwgd2h5IGFyZSB5b3UgYm90aGVyaW5nIHdpdGggYSBjdXJzb3I/ PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuNXB0Ij5UaGUgUG9zdGdyZVNRTCBkb2NzICg8 YSBocmVmPSJodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzkuNi9zdGF0aWMvcGxwZ3Nx bC1jdXJzb3JzLmh0bWwjQUVONjY1NTEiPmh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3Mv OS42L3N0YXRpYy9wbHBnc3FsLWN1cnNvcnMuaHRtbCNBRU42NjU1MTwvYT4pJm5ic3A7Y2xlYXJs eSByZWNvbW1lbmQgY3Vyc29ycw0KIGFzIGEgd2F5IHRvIHJldHVybiBhIHJlZmVyZW5jZSB0byBh IGxhcmdlIHJlc3VsdCBzZXQgZnJvbSBhIGZ1bmN0aW9uIChhcyBJIHVuZGVyc3Rvb2QsIHRoaXMg aXMgcmVjb21tZW5kZWQgcHJlY2lzZWx5IGFzIGEgd2F5IHRvIGF2b2lkIHR1cGxlLWJhc2VkIGJ1 ZmZlcmluZyBvZiB0aGUgZGF0YSkuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2 Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxk aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuNXB0Ij5T byBmb2xsb3dpbmcgdGhhdCBhZHZpY2UsIGl0J3Mgbm90IHVucmVhc29uYWJsZSB0aGF0IEkgd291 bGQgYWN0dWFsbHkgaGF2ZSBhIGN1cnNvciB0byBhIGxhcmdlIGRhdGFzZXQuPC9zcGFuPjxvOnA+ PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz cDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz dHlsZT0iZm9udC1zaXplOjkuNXB0Ij5UaGVuLCBJIHdvdWxkIGlkZWFsbHkgd2FudCB0byBiZSBh YmxlIHRvIGZldGNoIHRoZSBkYXRhIGZyb20gdGhhdCBjdXJzb3Igd2l0aG91dCB0aGUgZW50aXJl IGRhdGEgZ2V0dGluZyBkdXBsaWNhdGVkIChldmVuIGlmIG9ubHkgYSBiaXQgYXQgYSB0aW1lIGlu c3RlYWQgb2YgYWxsIGF0IG9uY2UsIHdoaWNoIHNlZW1zIHRvIGJlIHRoZSBiZXN0IGNhc2UgYmVo YXZpb3VyKQ0KIGFzIEkgZ28uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuNXB0Ij5BZGRp dGlvbmFsbHksIEkgdGhvdWdodCB0aGF0IGlmIEkgaGFkIGEgc3RyZWFtaW5nIHVzZS1jYXNlICh3 aGljaCBJIGRvKSwgYW5kIGEgc3RyZWFtaW5nIGRhdGEtYWNjZXNzIGxheWVyICh3aGljaCBJIGRv KSwgdGhlbiBzaW5jZSBgU0VMRUNUICogRlJPTSBsYXJnZWAgaXMgYWJzb2x1dGVseSBmaW5lLCBl bmQtdG8tZW5kLCBpbiB0aGF0IHNpdHVhdGlvbiwgdGhlbg0KIGJ5IHN5bW1ldHJ5IGFuZCB0aGUg cHJpbmNpcGxlIG9mIGxlYXN0IGFzdG9uaXNobWVudCBgRkVUQ0ggQUxMIEZST00gY3Vyc29yYCBt aWdodCBiZSBmaW5lIHRvby48L3NwYW4+PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+ DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg== --_000_0A1B0B276DEE6441A2E68EB66D4540DAD71C69E9WINEX1eldocompc_--