Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1va0eN-002O0I-1S for pgpool-hackers@arkaria.postgresql.org; Sun, 28 Dec 2025 23:58:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1va0eL-00EYIg-1E for pgpool-hackers@arkaria.postgresql.org; Sun, 28 Dec 2025 23:58:14 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1va0eL-00EYIY-0Q for pgpool-hackers@lists.postgresql.org; Sun, 28 Dec 2025 23:58:13 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1va0eJ-003JKL-1M for pgpool-hackers@lists.postgresql.org; Sun, 28 Dec 2025 23:58:13 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Transfer-Encoding:Content-Type: Mime-Version:References:In-Reply-To:From:Subject:Cc:To:Message-Id:Date:Sender :Reply-To:Content-ID:Content-Description; bh=6d06SjYCn8ntExmioaImJQqRyxJOoa5fIeqzjbebDE4=; b=6GZ5YxIu3VW6XZiyLA2lqPuDTZ SaI+LGI3bBuo9Op6MbxHYWwQrLX2/zJt8Ju4cz59SED6JCqieFml9QxONSXBETyrQXZbjcxhb/3Xa ufa1ycu8rA091P96T6h+TnRObM0z36u2V2juQUVUG9onIF/7E4X8K7H4IqMNeOgpB93BFI19JXDc2 XkRWAHxMicbJwO1MRt4Gej7DEoDINjkG3FObNMvc2YYWzfYhw9hM53ktm5nxrLCv6UAYJzgnmktBZ LW7v2DjVt8da5VRKv0fzomSTrLdV/vBqdZQXrLmTxnerImUPE0hpAe2dsdhtGcY+BqEO7FYOPHfwl Rt2/di8g==; Received: from [2409:11:4120:300:ba47:516f:562e:7ee6] (helo=localhost) by meldrar.postgresql.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1va0eG-006mhO-25; Sun, 28 Dec 2025 23:58:11 +0000 Date: Mon, 29 Dec 2025 08:58:03 +0900 (JST) Message-Id: <20251229.085803.2270812288334644179.ishii@postgresql.org> To: nadav@tailorbrands.com Cc: pgpool-hackers@lists.postgresql.org Subject: Re: Proposal: recent access based routing for primary-replica setups From: Tatsuo Ishii In-Reply-To: <20251229.084844.1964712636774742758.ishii@postgresql.org> References: <20251226.190349.1321105398044197651.ishii@postgresql.org> <20251229.084844.1964712636774742758.ishii@postgresql.org> X-Mailer: Mew version 6.8 on Emacs 29.3 Mime-Version: 1.0 Content-Type: Text/Plain; charset=utf-8 Content-Transfer-Encoding: base64 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2409:11:4120:300:ba47:516f:562e:7ee6 (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Pj4gdGhhbmsgeW91ISB3b3JrcyBmb3IgbWUuIHNob3VsZCB3ZSBtZXJnZSBib3RoIGludG8gbWFz dGVyIG9yIGRvIHlvdSB3YW50IG1lDQo+PiB0byBzZW5kIGEgY29tYmluZWQgb25lPw0KPiANCj4+ IGRvIHlvdSB3YW50IG1lIHRvIHNlbmQgYSBjb21iaW5lZCBvbmU/DQo+IA0KPiBZZXMsIHBsZWFz ZSBzZW5kIGEgY29tYmluZWQgb25lLg0KPiANCj4gSSB3aWxsIGRvIG1vcmUgdGVzdHMgYW5kIGRl dGFpbGVkIGNvZGUgcmV2aWV3Lg0KDQpBbHNvIHdoZW4gY29tYmluZyB0aGUgcGF0Y2hlcywgcGxl YXNlIGNvcnJlc3BvbmQgZm9sbG93aW5ncy4NCg0KPj4+ID4gSSBhbHNvIG5vdGljZSB0aGF0IHNv bWV0aGluZyBsaWtlOg0KPj4+ID4NCj4+PiA+ICAgICAgICAgICAgICAgLyogQ291bnQgdG9rZW5z IGluIG91dHB1dCBmb3IgdmFsaWRhdGlvbiAqLw0KPj4+ID4gICAgICAgICAgICAgICBjaGFyICps aW5lX2NvcHkgPSBwc3RyZHVwKGxpbmUpOw0KPj4+ID4gICAgICAgICAgICAgICBjaGFyICp0ZW1w X3Rva2VuID0gc3RydG9rKGxpbmVfY29weSwgIiBcdFxuIik7DQo+Pj4gPg0KPj4+ID4gWW91IHNo b3VsZCBkZWNsYXJlIGxpbmVfY29weSBhbmQgdGVtcF90b2tlbiBpbiB0aGUgYmVnZ2luZyBvZiB0 aGUgY29kZQ0KPj4+ID4gYmxvY2sgKG9yIGluIHRoZSBvdXRlciBibG9jaykuICBUaGUgZm9yd2Fy ZCBkZWNsYXJhdGlvbiBpcyByZWNvbW1lbmRlZA0KPj4+ID4gY29kaW5nIHN0eWxlIGluIFBncG9v bC1JSSAoYW5kIFBvc3RncmVTUUwpLiBTYW1lIHRoaW5nIGNhbiBiZSBzYWlkIHRvDQo+Pj4gPiBz b21lIG90aGVyIHZhcmlhYmxlcy4NCg0KQmVzdCByZWdhcmRzLA0KLS0NClRhdHN1byBJc2hpaQ0K U1JBIE9TUyBLLksuDQpFbmdsaXNoOiBodHRwOi8vd3d3LnNyYW9zcy5jby5qcC9pbmRleF9lbi8N CkphcGFuZXNlOmh0dHA6Ly93d3cuc3Jhb3NzLmNvLmpwDQoNCj4+IE9uIEZyaSwgRGVjIDI2LCAy MDI1IGF0IDEyOjAz4oCvUE0gVGF0c3VvIElzaGlpIDxpc2hpaUBwb3N0Z3Jlc3FsLm9yZz4gd3Jv dGU6DQo+PiANCj4+PiBIaSBOYWRhdiwNCj4+Pg0KPj4+IEkganVzdCB3YW50IHRvIG1ha2UgaXQg Y2xlYXIuIFRoZSBwYXRjaCBzaG91bGQgYmUgYXBwbGllZCBvbiB0b3Agb2YNCj4+PiB5b3VyIGxh dGVzdC5wYXRjaC4NCj4+Pg0KPj4+ID4gKFBsZWFzZSBkaXNyZWdhcmQgcHJldmlvdXMgbWFpbC4g SSBzZWVtIHRvIGhhdmUgbWFuZ2xlZCB0aGUgbWVzc2FnZSkuDQo+Pj4gPg0KPj4+ID4gSSB0aGlu ayBJIGZvdW5kIGEgY2F1c2Ugb2YgdGhlIHByb2JsZW0uIE9uIExpbnV4LCBpZiBTSUdDSExEIGlz DQo+Pj4gPiBpZ25vcmVkIChzZXQgdG8gU0lHX0lHTiksIHdhaXRwaWQoKSBjYW5ub3QgZ2V0IHBy b3BlciBjaGlsZCBzdGF0dXMuDQo+Pj4gPiBCZWNhdXNlIHRoZSBrZXJuZWwgcmVsY2FpbXMgdGhl IHJlc291cmNlIGZvciB0aGUgY2hpbGQgcHJvY2VzcyB0byBub3QNCj4+PiA+IG1ha2UgdGhlIGNo aWxkIHByb2Nlc3MgYSB6b21iaWUuIEFuZCB0aGlzIG1ha2VzIHdhaXRwaWQoKSB0byBmYWlsIHdp dGgNCj4+PiA+IEVDSExELiBTaW5jZSB0aGUgcmV0dXJuIG9mIHdhaXRwaWQoKSBpcyBub3QgY2hl Y2tlZCwgSSBkaWQgbm90IG5vdGljZQ0KPj4+ID4gdGhlIHdhaXRwaWQoKSBmYWlsdXJlIChJIHJl Y29tbWVuZCB0byBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mDQo+Pj4gPiB3YWl0cGlkKCkpLg0K Pj4+ID4NCj4+PiA+ICAgICAgIC8qIHNldCB1cCBzaWduYWwgaGFuZGxlcnMgKi8NCj4+PiA+ICAg ICAgIHNpZ25hbChTSUdBTFJNLCBTSUdfREZMKTsNCj4+PiA+ICAgICAgIHNpZ25hbChTSUdURVJN LCBteV9zaWduYWxfaGFuZGxlcik7DQo+Pj4gPiAgICAgICBzaWduYWwoU0lHSU5ULCBteV9zaWdu YWxfaGFuZGxlcik7DQo+Pj4gPiAgICAgICBzaWduYWwoU0lHSFVQLCByZWxvYWRfY29uZmlnX2hh bmRsZXIpOw0KPj4+ID4gICAgICAgc2lnbmFsKFNJR1FVSVQsIG15X3NpZ25hbF9oYW5kbGVyKTsN Cj4+PiA+ICAgICAgIHNpZ25hbChTSUdDSExELCBTSUdfSUdOKTsgICAgICAgPC0tLSBTSUdDSExE IGlzIGlnbm9yZWQNCj4+PiA+ICAgICAgIHNpZ25hbChTSUdVU1IxLCBteV9zaWduYWxfaGFuZGxl cik7DQo+Pj4gPiAgICAgICBzaWduYWwoU0lHVVNSMiwgU0lHX0lHTik7DQo+Pj4gPiAgICAgICBz aWduYWwoU0lHUElQRSwgU0lHX0lHTik7DQo+Pj4gPg0KPj4+ID4gVG8gZml4IHRoaXMsIGVpdGhl ciBjaGFuZ2UgdGhlIGxpbmUgYWJvdmUgdG86DQo+Pj4gPg0KPj4+ID4gICAgICAgc2lnbmFsKFNJ R0NITEQsIFNJR19ERkwpOw0KPj4+ID4gb3INCj4+PiA+ICAgICAgIHNpZ25hbChTSUdDSExELCBt eV9zaWduYWxfaGFuZGxlcik7DQo+Pj4gPiAgICAgICBhbmQgbW9kaWZ5IG15X3NpZ25hbF9oYW5k bGVyLg0KPj4+ID4NCj4+PiA+IEkgcmVjb21tZW5kIHRoZSBsYXR0ZXIsIGJlY2F1c2UgaXQgZG9l cyBub3QgZGVwZW5kIG9uIHRoZSBkZWZhdWx0DQo+Pj4gPiBiZWhhdmlvciBvZiBTSUdDSExELCB3 aGljaCBtaWdodCBiZSBkaWZmZXJlbnQgcGVyIHBsYXRmb3JtLg0KPj4+ID4gQXR0YWNoZWQgaXMg dGhlIHBhdGNoIHRvIGRvIHRoaXMuIChhbmQgcnVuIHBnaW5kZW50KS4NCj4+PiA+IEkgYWxzbyBu b3RpY2UgdGhhdCBzb21ldGhpbmcgbGlrZToNCj4+PiA+DQo+Pj4gPiAgICAgICAgICAgICAgIC8q IENvdW50IHRva2VucyBpbiBvdXRwdXQgZm9yIHZhbGlkYXRpb24gKi8NCj4+PiA+ICAgICAgICAg ICAgICAgY2hhciAqbGluZV9jb3B5ID0gcHN0cmR1cChsaW5lKTsNCj4+PiA+ICAgICAgICAgICAg ICAgY2hhciAqdGVtcF90b2tlbiA9IHN0cnRvayhsaW5lX2NvcHksICIgXHRcbiIpOw0KPj4+ID4N Cj4+PiA+IFlvdSBzaG91bGQgZGVjbGFyZSBsaW5lX2NvcHkgYW5kIHRlbXBfdG9rZW4gaW4gdGhl IGJlZ2dpbmcgb2YgdGhlIGNvZGUNCj4+PiA+IGJsb2NrIChvciBpbiB0aGUgb3V0ZXIgYmxvY2sp LiAgVGhlIGZvcndhcmQgZGVjbGFyYXRpb24gaXMgcmVjb21tZW5kZWQNCj4+PiA+IGNvZGluZyBz dHlsZSBpbiBQZ3Bvb2wtSUkgKGFuZCBQb3N0Z3JlU1FMKS4gU2FtZSB0aGluZyBjYW4gYmUgc2Fp ZCB0bw0KPj4+ID4gc29tZSBvdGhlciB2YXJpYWJsZXMuDQo+Pj4gPg0KPj4+ID4gQmVzdCByZWdh cmRzLA0KPj4+ID4gLS0NCj4+PiA+IFRhdHN1byBJc2hpaQ0KPj4+ID4gU1JBIE9TUyBLLksuDQo+ Pj4gPiBFbmdsaXNoOiBodHRwOi8vd3d3LnNyYW9zcy5jby5qcC9pbmRleF9lbi8NCj4+PiA+IEph cGFuZXNlOmh0dHA6Ly93d3cuc3Jhb3NzLmNvLmpwDQo+Pj4gPg0KPj4+ID4+IEhpIFRhdHN1bywN Cj4+PiA+Pg0KPj4+ID4+IFRoYW5rIHlvdSBmb3IgdGhlIG5vdGUuDQo+Pj4gPj4NCj4+PiA+PiBJ J3ZlIHJlbW92ZWQgdGhlIGRvY2tlciBzdHVmZi4gc3RhcnRlZCB3b3JraW5nIGluIGFuIHVidW50 dSAyNCBWTSB0bw0KPj4+IG1hdGNoDQo+Pj4gPj4gdGhlIHNldHVwLiBob3BlZnVsbHkgdGhlIHJl c3VsdHMgd2lsbCBiZSBiZXR0ZXIsIGhhZCBzbyBtYW55IGlzc3Vlcw0KPj4+ID4+IGNvbXBpbGlu ZyBhbmQgdGVzdGluZyBiZWZvcmUgdGhhdCBzdHVmZiB3YXNuJ3QgcHJvcGVybHkgZm9ybXVsYXRl ZC4NCj4+PiA+Pg0KPj4+ID4+IEF0dGFjaGluZyB0aGUgbGF0ZXN0IHBhdGNoLg0KPj4+ID4+DQo+ Pj4gPj4gdGhpcyBpcyB3aGF0IGknbSBzZWVpbmc6DQo+Pj4gPj4gYWRhdkBsaW1hLWRldjovc3Jj L3BncG9vbDIvc3JjL3Rlc3QvcmVncmVzc2lvbiQgUEdIT1NUPS90bXANCj4+PiAuL3JlZ3Jlc3Mu c2ggLXANCj4+PiA+PiAvdXNyL2JpbiAwNDEuZXh0ZXJuYWxfcmVwbGljYXRpb25fZGVsYXkNCj4+ PiA+PiBjcmVhdGluZyBwZ3Bvb2wtSUkgdGVtcG9yYXJ5IGluc3RhbGxhdGlvbiAuLi4NCj4+PiA+ PiBtb3ZpbmcgcGdwb29sX3NldHVwIHRvIHRlbXBvcmFyeSBpbnN0YWxsYXRpb24gcGF0aCAuLi4N Cj4+PiA+PiBtb3Zpbmcgd2F0Y2hkb2dfc2V0dXAgdG8gdGVtcG9yYXJ5IGluc3RhbGxhdGlvbiBw YXRoIC4uLg0KPj4+ID4+IHVzaW5nIHBncG9vbC1JSSBhdCAvc3JjL3BncG9vbDIvc3JjL3Rlc3Qv cmVncmVzc2lvbi90ZW1wL2luc3RhbGxlZA0KPj4+ID4+ICoqKioqKioqKioqKioqKioqKioqKioq KioNCj4+PiA+PiBSRUdSRVNTSU9OIE1PREUgICAgICAgICAgOiBpbnN0YWxsDQo+Pj4gPj4gUGdw b29sLUlJIHZlcnNpb24gICAgICAgIDogcGdwb29sLUlJIHZlcnNpb24gNC44ZGV2ZWwgKG1pdHN1 a2FrZWJvc2hpKQ0KPj4+ID4+IFBncG9vbC1JSSBpbnN0YWxsIHBhdGggICA6DQo+Pj4gL3NyYy9w Z3Bvb2wyL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVtcC9pbnN0YWxsZWQNCj4+PiA+PiBQb3N0Z3Jl U1FMIGJpbiAgICAgICAgICAgOiAvdXNyL2xpYi9wb3N0Z3Jlc3FsLzE2L2Jpbg0KPj4+ID4+IFBv c3RncmVTUUwgTWFqb3IgdmVyc2lvbiA6IDE2DQo+Pj4gPj4gcGdiZW5jaCAgICAgICAgICAgICAg ICAgIDogL3Vzci9saWIvcG9zdGdyZXNxbC8xNi9iaW4vcGdiZW5jaA0KPj4+ID4+IFBvc3RncmVT UUwgamRiYyAgICAgICAgICA6DQo+Pj4gPj4gL3Vzci9sb2NhbC9wZ3NxbC9zaGFyZS9wb3N0Z3Jl c3FsLTkuMi0xMDAzLmpkYmM0Lmphcg0KPj4+ID4+ICoqKioqKioqKioqKioqKioqKioqKioqKioN Cj4+PiA+PiB0ZXN0aW5nIDA0MS5leHRlcm5hbF9yZXBsaWNhdGlvbl9kZWxheS4uLm9rLg0KPj4+ ID4+IG91dCBvZiAxIG9rOjEgZmFpbGVkOjAgdGltZW91dDowDQo+Pj4gPj4NCj4+PiA+Pg0KPj4+ ID4+DQo+Pj4gPj4gT24gVHVlLCBEZWMgMjMsIDIwMjUgYXQgMTA6NDbigK9BTSBUYXRzdW8gSXNo aWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPg0KPj4+IHdyb3RlOg0KPj4+ID4+DQo+Pj4gPj4+ID4g SGkgVGF0c3VvLA0KPj4+ID4+PiA+DQo+Pj4gPj4+ID4gSSdrbSBydW5uaW5nIGludG8gaXNzdWVz IHRlc3RpbmcgdGhpcyBhbmQgaGF2ZSBjcmVhdGVkIGEgZnVsbCBkb2NrZXINCj4+PiA+Pj4gPiBj b21wb3NlIHNldHVwIC0gY2FuIHlvdSBwbGVhc2UgcG9pbnQgbWUgdG8gdXAgdG8gZGF0ZSBndWlk ZXMgb24gdGhlDQo+Pj4gYmVzdA0KPj4+ID4+PiA+IHdheSB0byBydW4gdGhlIHRlc3RzIHNvIGkg a25vdyB3ZSdyZSBkb2luZyBpdCB0aGUgc2FtZSB3YXk/DQo+Pj4gPj4+ID4NCj4+PiA+Pj4gPiBU aGFuayB5b3UgZm9yIGFsbCB5b3VyIGhlbHAhDQo+Pj4gPj4+DQo+Pj4gPj4+IEkgaGF2ZSBydW4g dGhlIHJlZ3Jlc3Npb24gdGVzdCBvbiB0aGUgUGdwb29sLUlJIG1hc3RlciBicmFuY2ggb24gbXkN Cj4+PiA+Pj4gVWJ1bnR1IDI0IGJveC4NCj4+PiA+Pj4NCj4+PiA+Pj4gY2QgcGdwb29sMi9zcmMv dGVzdC9yZWdyZXNzaW9uDQo+Pj4gPj4+IC4vcmVncmVzcy5zaCAwNDENCj4+PiA+Pj4NCj4+PiA+ Pj4gVGhpcyB0aW1lIEkgbm90aWNlZDoNCj4+PiA+Pj4NCj4+PiA+Pj4gLSBUaGUgcGF0Y2ggZG9l cyBub3QgbmFtZWQgd2l0aCB2ZXJzaW9uIG51bWJlcg0KPj4+ID4+PiAtIFRoZSBwYXRjaCBjcmVh dGVzIC5kb2NrZXJpZ25vcmUgYW5kIGRvY2tlci8gZGlyZWN0b3J5Lg0KPj4+ID4+Pg0KPj4+ID4+ PiBBcmUgdGhleSBpbnRlbmRlZD8gSSBhbSBhc2tpbmcgYmVjYXVzZSB0aGV5IGFyZSBkaWZmZXJl bnQgZnJvbSB0aGUNCj4+PiA+Pj4gcHJldmlvdXMgdmVyc2lvbi4NCj4+PiA+Pj4NCj4+PiA+Pj4g PiBPbiBUdWUsIERlYyAyMywgMjAyNSBhdCAyOjEz4oCvQU0gVGF0c3VvIElzaGlpIDxpc2hpaUBw b3N0Z3Jlc3FsLm9yZz4NCj4+PiA+Pj4gd3JvdGU6DQo+Pj4gPj4+ID4NCj4+PiA+Pj4gPj4gPiBJ IHRoaW5rIGV2ZXJ5dGhpbmcgaXMgcGFzc2luZyBub3cuIG5ldyB2ZXJzaW9uIGF0dGFjaGVkLg0K Pj4+ID4+PiA+Pg0KPj4+ID4+PiA+PiBVbmZvcnR1bmF0ZWx5IFRlc3QxIGRpZCBub3QgcGFzcy4N Cj4+PiA+Pj4gPj4NCj4+PiA+Pj4gPj4gPT09IFRlc3QxOiBCYXNpYyBleHRlcm5hbCBjb21tYW5k IHdpdGggaW50ZWdlciBtaWxsaXNlY29uZCB2YWx1ZXMNCj4+PiA9PT0NCj4+PiA+Pj4gPj4gd2Fp dGluZyBmb3Igc2VydmVyIHRvIHN0YXJ0Li4uLjE0Mzg2MDAgMjAyNS0xMi0yMyAwOTowOTo0OC4z MzcgSlNUDQo+Pj4gTE9HOg0KPj4+ID4+PiA+PiByZWRpcmVjdGluZyBsb2cgb3V0cHV0IHRvIGxv Z2dpbmcgY29sbGVjdG9yIHByb2Nlc3MNCj4+PiA+Pj4gPj4gMTQzODYwMCAyMDI1LTEyLTIzIDA5 OjA5OjQ4LjMzNyBKU1QgSElOVDogIEZ1dHVyZSBsb2cgb3V0cHV0IHdpbGwNCj4+PiBhcHBlYXIN Cj4+PiA+Pj4gPj4gaW4gZGlyZWN0b3J5ICJsb2ciLg0KPj4+ID4+PiA+PiAgZG9uZQ0KPj4+ID4+ PiA+PiBzZXJ2ZXIgc3RhcnRlZA0KPj4+ID4+PiA+PiB3YWl0aW5nIGZvciBzZXJ2ZXIgdG8gc3Rh cnQuLi4uMTQzODYxNyAyMDI1LTEyLTIzIDA5OjA5OjQ4LjQ0MyBKU1QNCj4+PiBMT0c6DQo+Pj4g Pj4+ID4+IHJlZGlyZWN0aW5nIGxvZyBvdXRwdXQgdG8gbG9nZ2luZyBjb2xsZWN0b3IgcHJvY2Vz cw0KPj4+ID4+PiA+PiAxNDM4NjE3IDIwMjUtMTItMjMgMDk6MDk6NDguNDQzIEpTVCBISU5UOiAg RnV0dXJlIGxvZyBvdXRwdXQgd2lsbA0KPj4+IGFwcGVhcg0KPj4+ID4+PiA+PiBpbiBkaXJlY3Rv cnkgImxvZyIuDQo+Pj4gPj4+ID4+ICBkb25lDQo+Pj4gPj4+ID4+IHNlcnZlciBzdGFydGVkDQo+ Pj4gPj4+ID4+IHdhaXRpbmcgZm9yIHNlcnZlciB0byBzdGFydC4uLi4xNDM4NjM0IDIwMjUtMTIt MjMgMDk6MDk6NDguNTYxIEpTVA0KPj4+IExPRzoNCj4+PiA+Pj4gPj4gcmVkaXJlY3RpbmcgbG9n IG91dHB1dCB0byBsb2dnaW5nIGNvbGxlY3RvciBwcm9jZXNzDQo+Pj4gPj4+ID4+IDE0Mzg2MzQg MjAyNS0xMi0yMyAwOTowOTo0OC41NjEgSlNUIEhJTlQ6ICBGdXR1cmUgbG9nIG91dHB1dCB3aWxs DQo+Pj4gYXBwZWFyDQo+Pj4gPj4+ID4+IGluIGRpcmVjdG9yeSAibG9nIi4NCj4+PiA+Pj4gPj4g IGRvbmUNCj4+PiA+Pj4gPj4gc2VydmVyIHN0YXJ0ZWQNCj4+PiA+Pj4gPj4gQ1JFQVRFIFRBQkxF DQo+Pj4gPj4+ID4+IFdhaXRpbmcgZm9yIHNyX2NoZWNrIHRvIHJ1bi4uLg0KPj4+ID4+PiA+PiBD b21tYW5kIGV4ZWN1dGVkIGFmdGVyIDEgc2Vjb25kcw0KPj4+ID4+PiA+PiAgbm9kZV9pZCB8IGhv c3RuYW1lICB8IHBvcnQgIHwgc3RhdHVzIHwgcGdfc3RhdHVzIHwgbGJfd2VpZ2h0IHwNCj4+PiBy b2xlDQo+Pj4gPj4+ICB8DQo+Pj4gPj4+ID4+IHBnX3JvbGUgfCBzZWxlY3RfY250IHwgbG9hZF9i YWxhbmNlX25vZGUgfCByZXBsaWNhdGlvbl9kZWxheSB8DQo+Pj4gPj4+ID4+IHJlcGxpY2F0aW9u X3N0YXRlIHwgcmVwbGljYXRpb25fc3luY19zdGF0ZSB8IGxhc3Rfc3RhdHVzX2NoYW5nZQ0KPj4+ ID4+PiA+Pg0KPj4+ID4+PiA+Pg0KPj4+ID4+Pg0KPj4+IC0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4+PiA+Pj4gPj4gIDAgICAgICAgfCBsb2NhbGhvc3QgfCAxMTAwMiB8IHVwICAg ICB8IHVwICAgICAgICB8IDAuMzMzMzMzICB8DQo+Pj4gcHJpbWFyeQ0KPj4+ID4+PiB8DQo+Pj4g Pj4+ID4+IHByaW1hcnkgfCAwICAgICAgICAgIHwgdHJ1ZSAgICAgICAgICAgICAgfCAwICAgICAg ICAgICAgICAgICB8DQo+Pj4gPj4+ID4+ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwg MjAyNS0xMi0yMyAwOTowOTo0OQ0KPj4+ID4+PiA+PiAgMSAgICAgICB8IGxvY2FsaG9zdCB8IDEx MDAzIHwgdXAgICAgIHwgdXAgICAgICAgIHwgMC4zMzMzMzMgIHwNCj4+PiBzdGFuZGJ5DQo+Pj4g Pj4+IHwNCj4+PiA+Pj4gPj4gc3RhbmRieSB8IDAgICAgICAgICAgfCBmYWxzZSAgICAgICAgICAg ICB8IDAgICAgICAgICAgICAgICAgIHwNCj4+PiA+Pj4gPj4gICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgfCAyMDI1LTEyLTIzIDA5OjA5OjQ5DQo+Pj4gPj4+ID4+ICAyICAgICAgIHwgbG9j YWxob3N0IHwgMTEwMDQgfCB1cCAgICAgfCB1cCAgICAgICAgfCAwLjMzMzMzMyAgfA0KPj4+IHN0 YW5kYnkNCj4+PiA+Pj4gfA0KPj4+ID4+PiA+PiBzdGFuZGJ5IHwgMCAgICAgICAgICB8IGZhbHNl ICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgfA0KPj4+ID4+PiA+PiAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICB8IDIwMjUtMTItMjMgMDk6MDk6NDkNCj4+PiA+Pj4gPj4gKDMg cm93cykNCj4+PiA+Pj4gPj4NCj4+PiA+Pj4gPj4gZmFpbDogZXh0ZXJuYWwgY29tbWFuZCBkZWxh eSBsb2dnaW5nIG5vdCBmb3VuZA0KPj4+ID4+PiA+Pg0KPj4+ID4+PiA+PiA+IE9uIE1vbiwgTm92 IDI0LCAyMDI1IGF0IDk6NDHigK9BTSBUYXRzdW8gSXNoaWkgPA0KPj4+IGlzaGlpQHBvc3RncmVz cWwub3JnPg0KPj4+ID4+PiA+PiB3cm90ZToNCj4+PiA+Pj4gPj4gPg0KPj4+ID4+PiA+PiA+PiBU aGFuayB5b3UgZm9yIHVwZGF0aW5nIHRoZSBwYXRjaCEgVGhpcyB0aW1lIHRoZSBwYXRjaCBhcHBs aWVzDQo+Pj4gd2l0aG91dA0KPj4+ID4+PiA+PiA+PiBhbnkgaXNzdWUgYW5kIGNvbXBpbGVzIGZp bmUuIFVuZm9ydHVuYXRlbHkgcmVncmVzc2lvbiB0ZXN0DQo+Pj4gZmFpbGVkLg0KPj4+ID4+PiA+ PiA+Pg0KPj4+ID4+PiA+PiA+PiB0ZXN0aW5nIDA0MS5leHRlcm5hbF9yZXBsaWNhdGlvbl9kZWxh eS4uLmZhaWxlZC4NCj4+PiA+Pj4gPj4gPj4NCj4+PiA+Pj4gPj4gPj4gRnJvbSB0aGUgcmVncmVz c2lvbiBsb2csIGl0IHNlZW1zIFRlc3Q3IGZhaWxlZC4NCj4+PiA+Pj4gPj4gPj4NCj4+PiA+Pj4g Pj4gPj4NCj4+PiA+Pj4gPj4NCj4+PiA+Pj4NCj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+ PiA+Pj4gPj4gPj4gPT09IFRlc3Q3OiBDb21tYW5kIHRpbWVvdXQgaGFuZGxpbmcgPT09DQo+Pj4g Pj4+ID4+ID4+IHdhaXRpbmcgZm9yIHNlcnZlciB0byBzdGFydC4uLi40MTExODEgMjAyNS0xMS0y NCAxNjozMTowNS4yNDQgSlNUDQo+Pj4gPj4+IExPRzoNCj4+PiA+Pj4gPj4gPj4gcmVkaXJlY3Rp bmcgbG9nIG91dHB1dCB0byBsb2dnaW5nIGNvbGxlY3RvciBwcm9jZXNzDQo+Pj4gPj4+ID4+ID4+ IDQxMTE4MSAyMDI1LTExLTI0IDE2OjMxOjA1LjI0NCBKU1QgSElOVDogIEZ1dHVyZSBsb2cgb3V0 cHV0IHdpbGwNCj4+PiA+Pj4gYXBwZWFyDQo+Pj4gPj4+ID4+IGluDQo+Pj4gPj4+ID4+ID4+IGRp cmVjdG9yeSAibG9nIi4NCj4+PiA+Pj4gPj4gPj4gIGRvbmUNCj4+PiA+Pj4gPj4gPj4gc2VydmVy IHN0YXJ0ZWQNCj4+PiA+Pj4gPj4gPj4gd2FpdGluZyBmb3Igc2VydmVyIHRvIHN0YXJ0Li4uLjQx MTE5NiAyMDI1LTExLTI0IDE2OjMxOjA1LjM1MiBKU1QNCj4+PiA+Pj4gTE9HOg0KPj4+ID4+PiA+ PiA+PiByZWRpcmVjdGluZyBsb2cgb3V0cHV0IHRvIGxvZ2dpbmcgY29sbGVjdG9yIHByb2Nlc3MN Cj4+PiA+Pj4gPj4gPj4gNDExMTk2IDIwMjUtMTEtMjQgMTY6MzE6MDUuMzUyIEpTVCBISU5UOiAg RnV0dXJlIGxvZyBvdXRwdXQgd2lsbA0KPj4+ID4+PiBhcHBlYXINCj4+PiA+Pj4gPj4gaW4NCj4+ PiA+Pj4gPj4gPj4gZGlyZWN0b3J5ICJsb2ciLg0KPj4+ID4+PiA+PiA+PiAgZG9uZQ0KPj4+ID4+ PiA+PiA+PiBzZXJ2ZXIgc3RhcnRlZA0KPj4+ID4+PiA+PiA+PiB3YWl0aW5nIGZvciBzZXJ2ZXIg dG8gc3RhcnQuLi4uNDExMjEzIDIwMjUtMTEtMjQgMTY6MzE6MDUuNDYxIEpTVA0KPj4+ID4+PiBM T0c6DQo+Pj4gPj4+ID4+ID4+IHJlZGlyZWN0aW5nIGxvZyBvdXRwdXQgdG8gbG9nZ2luZyBjb2xs ZWN0b3IgcHJvY2Vzcw0KPj4+ID4+PiA+PiA+PiA0MTEyMTMgMjAyNS0xMS0yNCAxNjozMTowNS40 NjEgSlNUIEhJTlQ6ICBGdXR1cmUgbG9nIG91dHB1dCB3aWxsDQo+Pj4gPj4+IGFwcGVhcg0KPj4+ ID4+PiA+PiBpbg0KPj4+ID4+PiA+PiA+PiBkaXJlY3RvcnkgImxvZyIuDQo+Pj4gPj4+ID4+ID4+ ICBkb25lDQo+Pj4gPj4+ID4+ID4+IHNlcnZlciBzdGFydGVkDQo+Pj4gPj4+ID4+ID4+IFdhaXRp bmcgZm9yIGNvbW1hbmQgdGltZW91dC4uLg0KPj4+ID4+PiA+PiA+PiBmYWlsOiBjb21tYW5kIHRp bWVvdXQgbm90IGRldGVjdGVkDQo+Pj4gPj4+ID4+ID4+DQo+Pj4gPj4+ID4+ID4+DQo+Pj4gPj4+ ID4+DQo+Pj4gPj4+DQo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4gPj4+ID4+ID4+DQo+ Pj4gPj4+ID4+ID4+IEF0dGFjaGVkIGlzIHRoZSBwZ3Bvb2wubG9nLiBJZiB5b3UgbmVlZCBtb3Jl IGluZm8sIHBsZWFzZSBsZXQgbWUNCj4+PiA+Pj4ga25vdy4NCj4+PiA+Pj4gPj4gPj4NCj4+PiA+ Pj4gPj4gPj4gQmVzdCByZWdhcmRzLA0KPj4+ID4+PiA+PiA+PiAtLQ0KPj4+ID4+PiA+PiA+PiBU YXRzdW8gSXNoaWkNCj4+PiA+Pj4gPj4gPj4gU1JBIE9TUyBLLksuDQo+Pj4gPj4+ID4+ID4+IEVu Z2xpc2g6IGh0dHA6Ly93d3cuc3Jhb3NzLmNvLmpwL2luZGV4X2VuLw0KPj4+ID4+PiA+PiA+PiBK YXBhbmVzZTpodHRwOi8vd3d3LnNyYW9zcy5jby5qcA0KPj4+ID4+PiA+PiA+Pg0KPj4+ID4+PiA+ PiA+Pg0KPj4+ID4+PiA+PiA+PiA+IEhpIFRhdHN1bywNCj4+PiA+Pj4gPj4gPj4gPg0KPj4+ID4+ PiA+PiA+PiA+IFNvcnJ5IGFnYWluLCB0aGlzIHdhcyBkdWUgdG8gdGhlIHNlcGFyYXRpb24gb2Yg MiBwYXRjaGVzIGFuZCBpDQo+Pj4gb25seQ0KPj4+ID4+PiA+PiBzZW50DQo+Pj4gPj4+ID4+ID4+ ID4gdGhlIG9uZS4NCj4+PiA+Pj4gPj4gPj4gPg0KPj4+ID4+PiA+PiA+PiA+IEkndmUgbWVyZ2Vk IGl0IGludG8gMSBjb21taXQgYW5kIDEgcGF0Y2ggYW5kIHJlYmFzZWQgb3Zlcg0KPj4+IG1hc3Rl ciB0bw0KPj4+ID4+PiA+PiBhdm9pZA0KPj4+ID4+PiA+PiA+PiA+IHRoZXNlIGlzc3VlcyBtb3Zp bmcgZm9yd2FyZC4NCj4+PiA+Pj4gPj4gPj4gPg0KPj4+ID4+PiA+PiA+PiA+IFBGQSBsYXRlc3Qg dmVyc2lvbg0KPj4+ID4+PiA+PiA+PiA+DQo+Pj4gPj4+ID4+ID4+ID4gT24gVGh1LCBOb3YgMjAs IDIwMjUgYXQgMTowOeKAr0FNIFRhdHN1byBJc2hpaSA8DQo+Pj4gaXNoaWlAcG9zdGdyZXNxbC5v cmcNCj4+PiA+Pj4gPg0KPj4+ID4+PiA+PiA+PiB3cm90ZToNCj4+PiA+Pj4gPj4gPj4gPg0KPj4+ ID4+PiA+PiA+PiA+PiBIaSBOYWRhdiwNCj4+PiA+Pj4gPj4gPj4gPj4NCj4+PiA+Pj4gPj4gPj4g Pj4gVGhhbmsgeW91IGZvciBuZXcgcGF0Y2guDQo+Pj4gPj4+ID4+ID4+ID4+IFVuZm9ydHVuYXRl bHkgdGhlIHBhdGNoIGRpZCBub3QgYXBwbHkgdG8gY3VycmVudCBtYXN0ZXIuDQo+Pj4gPj4+ID4+ ID4+ID4+DQo+Pj4gPj4+ID4+ID4+ID4+ICQgZ2l0IGFwcGx5DQo+Pj4gPj4+ID4+ID4+ID4+DQo+ Pj4gfi8wMDAxLUZpeC1tdWx0aXBsZS1pc3N1ZXMtaW4tZXh0ZXJuYWwtcmVwbGljYXRpb24tZGVs YXktZmUucGF0Y2gNCj4+PiA+Pj4gPj4gPj4gPj4gZXJyb3I6IHBhdGNoIGZhaWxlZDoNCj4+PiA+ Pj4gPj4gc3JjL3N0cmVhbWluZ19yZXBsaWNhdGlvbi9wb29sX3dvcmtlcl9jaGlsZC5jOjY5NA0K Pj4+ID4+PiA+PiA+PiA+PiBlcnJvcjogc3JjL3N0cmVhbWluZ19yZXBsaWNhdGlvbi9wb29sX3dv cmtlcl9jaGlsZC5jOiBwYXRjaA0KPj4+IGRvZXMNCj4+PiA+Pj4gbm90DQo+Pj4gPj4+ID4+ID4+ IGFwcGx5DQo+Pj4gPj4+ID4+ID4+ID4+DQo+Pj4gPj4+ID4+ID4+ID4+IE1heWJlIHRoZSBwYXRj aCBpcyBvbiB0b3Agb2YgeW91ciBwcmV2aW91cyBwYXRjaD8NCj4+PiA+Pj4gPj4gPj4gPj4NCj4+ PiA+Pj4gPj4gPj4gPj4gQWxzbyBJIHN1Z2dlc3QgdG8gdXNlICItdiIgb3B0aW9uIG9mICJnaXQg Zm9ybWF0LXBhdGNoIiB0bw0KPj4+IGFkZCB0aGUNCj4+PiA+Pj4gPj4gPj4gPj4gcGF0Y2ggdmVy c2lvbiBudW1iZXIgc28gdGhhdCB3ZSBjYW4gZWFzaWx5IGtub3cgd2hpY2ggcGF0Y2gNCj4+PiBp cyB0aGUNCj4+PiA+Pj4gPj4gPj4gPj4gbGF0ZXN0Lg0KPj4+ID4+PiA+PiA+PiA+Pg0KPj4+ID4+ PiA+PiA+PiA+PiBCZXN0IHJlZ2FyZHMsDQo+Pj4gPj4+ID4+ID4+ID4+IC0tDQo+Pj4gPj4+ID4+ ID4+ID4+IFRhdHN1byBJc2hpaQ0KPj4+ID4+PiA+PiA+PiA+PiBTUkEgT1NTIEsuSy4NCj4+PiA+ Pj4gPj4gPj4gPj4gRW5nbGlzaDogaHR0cDovL3d3dy5zcmFvc3MuY28uanAvaW5kZXhfZW4vDQo+ Pj4gPj4+ID4+ID4+ID4+IEphcGFuZXNlOmh0dHA6Ly93d3cuc3Jhb3NzLmNvLmpwDQo+Pj4gPj4+ ID4+ID4+ID4+DQo+Pj4gPj4+ID4+ID4+ID4+ID4gSGkgVGF0c3VvLA0KPj4+ID4+PiA+PiA+PiA+ PiA+DQo+Pj4gPj4+ID4+ID4+ID4+ID4gUGxlYXNlIHNlZSBhdHRhY2hlZCBhbiB1cGRhdGVkIHZl cnNpb24uDQo+Pj4gPj4+ID4+ID4+ID4+ID4NCj4+PiA+Pj4gPj4gPj4gPj4gPiB0aGFuayB5b3UN Cj4+PiA+Pj4gPj4gPj4gPj4gPg0KPj4+ID4+PiA+PiA+PiA+PiA+IE9uIEZyaSwgTm92IDcsIDIw MjUgYXQgMjowN+KAr0FNIFRhdHN1byBJc2hpaSA8DQo+Pj4gPj4+IGlzaGlpQHBvc3RncmVzcWwu b3JnPg0KPj4+ID4+PiA+PiA+PiA+PiB3cm90ZToNCj4+PiA+Pj4gPj4gPj4gPj4gPg0KPj4+ID4+ PiA+PiA+PiA+PiA+PiA+IFNvcnJ5IGZvciB0aGF0IC0gdGhhbmtzIGZvciB0aGUgcGF0Y2guDQo+ Pj4gPj4+ID4+ID4+ID4+ID4+ID4NCj4+PiA+Pj4gPj4gPj4gPj4gPj4gPiBQbGVhc2UgZmluZCBh dHRhY2hlZCBhIG5ldyB2ZXJzaW9uDQo+Pj4gPj4+ID4+ID4+ID4+ID4+DQo+Pj4gPj4+ID4+ID4+ ID4+ID4+IFRoYW5rcyBmb3IgdGhlIG5ldyB2ZXJzaW9uLiBVbmZvcnR1bmF0ZWx5IHRoaXMgdGlt ZQ0KPj4+IHJlZ3Jlc3Npb24NCj4+PiA+Pj4gPj4gdGVzdA0KPj4+ID4+PiA+PiA+PiA+PiA+PiBm YWlscyBhdDoNCj4+PiA+Pj4gPj4gPj4gPj4gPj4NCj4+PiA+Pj4gPj4gPj4gPj4gPj4gPiBXYWl0 aW5nIGZvciBjb21tYW5kIHRpbWVvdXQuLi4NCj4+PiA+Pj4gPj4gPj4gPj4gPj4gPiBmYWlsOiBj b21tYW5kIHRpbWVvdXQgbm90IGRldGVjdGVkDQo+Pj4gPj4+ID4+ID4+ID4+ID4+DQo+Pj4gPj4+ ID4+ID4+ID4+ID4+IEF0dGFjaGVkIGlzIHRoZSBwZ3Bvb2wubG9nLg0KPj4+ID4+PiA+PiA+PiA+ PiA+Pg0KPj4+ID4+PiA+PiA+PiA+PiA+PiBCZXN0IHJlZ2FyZHMsDQo+Pj4gPj4+ID4+ID4+ID4+ ID4+IC0tDQo+Pj4gPj4+ID4+ID4+ID4+ID4+IFRhdHN1byBJc2hpaQ0KPj4+ID4+PiA+PiA+PiA+ PiA+PiBTUkEgT1NTIEsuSy4NCj4+PiA+Pj4gPj4gPj4gPj4gPj4gRW5nbGlzaDogaHR0cDovL3d3 dy5zcmFvc3MuY28uanAvaW5kZXhfZW4vDQo+Pj4gPj4+ID4+ID4+ID4+ID4+IEphcGFuZXNlOmh0 dHA6Ly93d3cuc3Jhb3NzLmNvLmpwDQo+Pj4gPj4+ID4+ID4+ID4+ID4+DQo+Pj4gPj4+ID4+ID4+ ID4+ID4+ID4gT24gTW9uLCBOb3YgMywgMjAyNSBhdCA5OjA14oCvQU0gVGF0c3VvIElzaGlpIDwN Cj4+PiA+Pj4gPj4gaXNoaWlAcG9zdGdyZXNxbC5vcmc+DQo+Pj4gPj4+ID4+ID4+ID4+ID4+IHdy b3RlOg0KPj4+ID4+PiA+PiA+PiA+PiA+PiA+DQo+Pj4gPj4+ID4+ID4+ID4+ID4+ID4+ID4gdGhh bmtzIGFuZCBzb3JyeSBmb3IgdGhlIGlzc3VlcywgcGxlYXNlIGZpbmQgYXR0YWNoZWQNCj4+PiA+ Pj4gdXBkYXRlZA0KPj4+ID4+PiA+PiA+PiA+PiB2ZXJzaW9uLg0KPj4+ID4+PiA+PiA+PiA+PiA+ PiA+Pg0KPj4+ID4+PiA+PiA+PiA+PiA+PiA+PiBObyBwcm9ibGVtLg0KPj4+ID4+PiA+PiA+PiA+ PiA+PiA+Pg0KPj4+ID4+PiA+PiA+PiA+PiA+PiA+PiBUaGlzIHRpbWUgdGhlIHBhdGNoIGFwcGxp ZXMgZmluZSwgbm8gY29tcGlsZXIgd2FybmluZ3MuDQo+Pj4gPj4+ID4+IEhvd2V2ZXIsDQo+Pj4g Pj4+ID4+ID4+ID4+ID4+ID4+IHJlZ3Jlc3Npb24gdGVzdCBkaWQgbm90IHBhc3NlZCBoZXJlIChv biBVYnVudHUgMjQgTFRTIGlmDQo+Pj4gPj4+IHRoaXMNCj4+PiA+Pj4gPj4gPj4gPj4gPj4gPj4g bWF0dGVycykuICBTbyBJIGxvb2tlZCBpbnRvDQo+Pj4gPj4+ID4+ID4+ID4+ID4+ID4+DQo+Pj4g Pj4+ID4+IHNyYy90ZXN0L3JlZ3Jlc3Npb24vdGVzdHMvMDQxLmV4dGVybmFsX3JlcGxpY2F0aW9u X2RlbGF5L3Rlc3Quc2ggYQ0KPj4+ID4+PiA+PiA+PiA+PiA+PiA+PiBsaXR0bGUgYml0IGFuZCBh cHBseSBhdHRhY2hlZCBwYXRjaCAodGVzdC5zaC5wYXRjaCkuIEl0DQo+Pj4gPj4+IG1vdmVkDQo+ Pj4gPj4+ID4+ID4+IGZvcndhcmQNCj4+PiA+Pj4gPj4gPj4gPj4gPj4gPj4gcGFydGlhbGx5IGJ1 dCBmYWlsZWQgYXQ6DQo+Pj4gPj4+ID4+ID4+ID4+ID4+ID4+DQo+Pj4gPj4+ID4+ID4+ID4+ID4+ ID4+IGZhaWw6IGNvbW1hbmQgZXhlY3V0aW9uIGZhaWx1cmUgbm90IGRldGVjdGVkDQo+Pj4gPj4+ ID4+ID4+ID4+ID4+ID4+DQo+Pj4gPj4+ID4+ID4+ID4+ID4+ID4+IFBsZWFzZSBmaW5kIGF0dGFj aGVkDQo+Pj4gPj4+ID4+ID4+ID4+ID4+ID4+DQo+Pj4gPj4+ID4+ID4+ID4+ID4+DQo+Pj4gPj4+ ID4+ID4+ID4+DQo+Pj4gPj4+ID4+ID4+DQo+Pj4gPj4+ID4+DQo+Pj4gPj4+DQo+Pj4gc3JjL3Rl c3QvcmVncmVzc2lvbi90ZXN0cy8wNDEuZXh0ZXJuYWxfcmVwbGljYXRpb25fZGVsYXkvdGVzdGRp ci9wZ3Bvb2wubG9nDQo+Pj4gPj4+ID4+ID4+ID4+ID4+ID4+IGFuZA0KPj4+IHNyYy90ZXN0L3Jl Z3Jlc3Npb24vbG9nLzA0MS5leHRlcm5hbF9yZXBsaWNhdGlvbl9kZWxheS4NCj4+PiA+Pj4gPj4g Pj4gPj4gPj4gPj4NCj4+PiA+Pj4gPj4gPj4gPj4gPj4gPj4gQmVzdCByZWdhcmRzLA0KPj4+ID4+ PiA+PiA+PiA+PiA+PiA+PiAtLQ0KPj4+ID4+PiA+PiA+PiA+PiA+PiA+PiBUYXRzdW8gSXNoaWkN Cj4+PiA+Pj4gPj4gPj4gPj4gPj4gPj4gU1JBIE9TUyBLLksuDQo+Pj4gPj4+ID4+ID4+ID4+ID4+ ID4+IEVuZ2xpc2g6IGh0dHA6Ly93d3cuc3Jhb3NzLmNvLmpwL2luZGV4X2VuLw0KPj4+ID4+PiA+ PiA+PiA+PiA+PiA+PiBKYXBhbmVzZTpodHRwOi8vd3d3LnNyYW9zcy5jby5qcA0KPj4+ID4+PiA+ PiA+PiA+PiA+PiA+Pg0KPj4+ID4+PiA+PiA+PiA+PiA+PiA+DQo+Pj4gPj4+ID4+ID4+ID4+ID4+ ID4NCj4+PiA+Pj4gPj4gPj4gPj4gPj4gPiAtLQ0KPj4+ID4+PiA+PiA+PiA+PiA+PiA+IE5hZGF2 IFNoYXR6DQo+Pj4gPj4+ID4+ID4+ID4+ID4+ID4gVGFpbG9yIEJyYW5kcyB8IENUTw0KPj4+ID4+ PiA+PiA+PiA+PiA+Pg0KPj4+ID4+PiA+PiA+PiA+PiA+DQo+Pj4gPj4+ID4+ID4+ID4+ID4NCj4+ PiA+Pj4gPj4gPj4gPj4gPiAtLQ0KPj4+ID4+PiA+PiA+PiA+PiA+IE5hZGF2IFNoYXR6DQo+Pj4g Pj4+ID4+ID4+ID4+ID4gVGFpbG9yIEJyYW5kcyB8IENUTw0KPj4+ID4+PiA+PiA+PiA+Pg0KPj4+ ID4+PiA+PiA+PiA+DQo+Pj4gPj4+ID4+ID4+ID4NCj4+PiA+Pj4gPj4gPj4gPiAtLQ0KPj4+ID4+ PiA+PiA+PiA+IE5hZGF2IFNoYXR6DQo+Pj4gPj4+ID4+ID4+ID4gVGFpbG9yIEJyYW5kcyB8IENU Tw0KPj4+ID4+PiA+PiA+Pg0KPj4+ID4+PiA+PiA+DQo+Pj4gPj4+ID4+ID4NCj4+PiA+Pj4gPj4g PiAtLQ0KPj4+ID4+PiA+PiA+IE5hZGF2IFNoYXR6DQo+Pj4gPj4+ID4+ID4gVGFpbG9yIEJyYW5k cyB8IENUTw0KPj4+ID4+PiA+Pg0KPj4+ID4+PiA+DQo+Pj4gPj4+ID4NCj4+PiA+Pj4gPiAtLQ0K Pj4+ID4+PiA+IE5hZGF2IFNoYXR6DQo+Pj4gPj4+ID4gVGFpbG9yIEJyYW5kcyB8IENUTw0KPj4+ ID4+Pg0KPj4+ID4+DQo+Pj4gPj4NCj4+PiA+PiAtLQ0KPj4+ID4+IE5hZGF2IFNoYXR6DQo+Pj4g Pj4gVGFpbG9yIEJyYW5kcyB8IENUTw0KPj4+DQo+PiANCj4+IA0KPj4gLS0gDQo+PiBOYWRhdiBT aGF0eg0KPj4gVGFpbG9yIEJyYW5kcyB8IENUTw0KPiA8DQo=