Re: Postgres enum problem

Stian Sletner <[email protected]> Fri, 19 Aug 2016 09:46:36 +0200
Newsgroups gmane.lisp.clsql.general
Message-ID <[email protected]>
UnVzcywKClRoYW5rcyBmb3IgYWxsIHlvdXIgZWZmb3J0IGluIGhlbHBpbmcgbWUgd2l0aCB0aGlz
IGlzc3VlLiAgSSd2ZQppbXBsZW1lbnRlZCB0aGUgc29sdXRpb24gd2UgYXJyaXZlZCBhdCBhbmQg
aXQgc2VlbXMgdG8gd29yayBwZXJmZWN0bHkKZm9yIG1lLCBpbiB0aGF0IGl0J3MgYSByZWxhdGl2
ZWx5IHNtYWxsIGFuZCBjb25jZW50cmF0ZWQgY2hhbmdlIHRvIGEKbGVnYWN5IHN5c3RlbSB3aGlj
aCBpcyBhbHdheXMgcHJlZmVycmFibGUuIDopCgpBcyBmb3IgdGhlIHByb3Bvc2VkIHN5bnRheCBj
aGFuZ2UsIEkgZG9uJ3QgZmVlbCBxdWFsaWZpZWQgdG8gc2F5IHdoZXRoZXIKaXQncyB0aGUgcmln
aHQgd2F5IG9yIG5vdCwgbXkgZXhwZXJpZW5jZSB3aXRoIENMU1FMIHN5bnRheCBpcyB0b28gc2Nh
bnQuCiBCdXQgdGhlcmUgZGVmaW5pdGVseSBzaG91bGQgYmUgYSB3YXkgZm9yIHBlb3BsZSB0byBy
ZWFkL3NlbGVjdCBrZXl3b3JkcwpiYWNrLCBub3cgdGhhdCB0aGV5J3JlIHN0b3JlZCB3aXRoIHBh
Y2thZ2UgcXVhbGlmaWVyLCBzbyB0aGUgY29uY2VwdApzZWVtcyBzb3VuZC4KClRoYW5rcyBhZ2Fp
bi4KCgpPbiAyMDE2LTA4LTE4IDIxOjMyLCBSdXNzIFR5bmRhbGwgd3JvdGU6Cj4gTXkgaW5pdGlh
bCByZXBseSBnb3QgbG9zdCB3aGVuIG15IGNvbXB1dGVyIGZyb3plIGR1cmluZyB1cGdyYWRlLiBT
b3JyeSAKPiBmb3IgdGhlIGRlbGF5Lgo+IAo+IFlvdXIgc29sdXRpb24gbG9va3MgbGlrZSB3aGF0
IEkgaGFkIGluIG1pbmQuICBZb3UgbWlnaHQgYWxzbyBjb25zaWRlciAKPiBqdXN0IHNldHRpbmcg
dGhlIHR5cGUgdG8gJ3N0cmluZyAodGhpcyB3aWxsIGNvbnZlcnQgeW91ciBzeW1ib2xzIHRvIAo+
IHN0cmluZyB2YWx1ZXMgaW4gdGhlIGRhdGFiYXNlLCBidXQgbm90IGJhY2sgdG8ga2V5d29yZHMg
d2hlbiB5b3UgCj4gcmV0cmlldmUgdGhlbSAtIG5vdCBzdXJlIGlmIHRoaXMgaXMgcmVsZXZhbnQg
b3Igbm90KS4KPiAKPiBUaGFuayBmb3IgcG9pbnRpbmcgb3V0IHRoZSBvZGQgY2FzZSBzdGF0ZW1l
bnRzLgo+IAo+IFlvdSBhbHNvIG5vdGljZWQgdGhhdCBGRE1MIGRvZXNuJ3QgY29ycmVjdGx5IGNv
bnZlcnQgc3ltYm9scyBpbnRvIHRoZWlyIAo+IHJlYWRhYmxlIHZhbHVlcy4gIFRoaXMgaXMgZm9y
IGhpc3RvcmljYWwgcmVhc29ucyBhbmQgYmVjYXVzZSBGRE1MIGlzIAo+IHdyaXR0ZW4gdG8gbWF0
Y2ggc3FsIHNlbWFudGljcyByYXRoZXIgdGhhbiBtYXBwaW5nIGxpc3Agc2VtYW50aWNzIAo+ICht
b3N0bHkpLiAgSSB0aGluayB0aGUgYmVzdCB3YXkgdG8gZ28gYWJvdXQgZ2V0dGluZyB0aGUgRkRN
TCBsYXllciB0byAKPiBwcmludCBzeW1ib2xzIHJlYWRhYmx5IChzdWNoIHRoYXQgd2hlcmUgY2xh
dXNlcyBvbiAnc3ltYm9sIHR5cGVkIGNvbHVtbnMgCj4gYXJlIHVzYWJsZSksIHdvdWxkIGJlIHRv
IGFkZCBzeW50YXggc29tZSBzeW50YXg6IFtzeW1ib2wgOmZvb10gdGhhdCBzYXlzIAo+IHRvIHBy
aW50IHRoZSBzeW1ib2wgcmVhZGFibHkgcmF0aGVyIHRoYW4gZG93bmNhc3RpbmcgdG8gYSBzdHJp
bmcuICBJIAo+IHRoaW5rIGRvd25jYXN0aW5nIHRvIHN0cmluZyBpcyBhIGdvb2QgZGVmYXVsdCBi
ZWhhdmlvciBiZWNhdXNlIGl0IAo+IHByZXNlcnZlcyBtdWNoIHdvcmtpbmcgY29kZSAtIEkgdGhp
bmsgc3ltYm9sIGNvbHVtbnMgYXJlIG5vdCB0aGF0IGNvbW1vbiAKPiBiZWNhdXNlIHRoZXkgYXJl
IG5vdCBhIHNxbCB0eXBlLgo+IAo+IFdpdGggdGhpcyBwcm9wb3NlZCBsb2dpYzoKPiAKPiAgIFs9
IFtrd10gOmhlaV0gPSA+IGt3ID0gJ0hFSScKPiBhbmQKPiAgIFs9IFtrd10gW3N5bWJvbCA6aGVp
XV0gPSA+IGt3ID0gJzpIRUknCj4gCj4gSWYgdGhpcyBzZWVtcyByZWFzb25hYmxlLCBJIHdpbGwg
Z28gYWhlYWQgYW5kIGNvbW1pdCB0aGlzIHN5bnRheAo+IAo+IENoZWVycyBhbmQgdGhhbmtzIGZv
ciB0aGUgZm9sbG93dXBzIGFuZCBjbGFyaWZpY2F0aW9ucywKPiAKPiBSdXNzIFR5bmRhbGwsCj4g
QWNjZWxlcmF0aW9uLm5ldAo+IAo+IAo+IE9uIDA4LzE2LzIwMTYgMDk6MDYgQU0sIFN0aWFuIFNs
ZXRuZXIgd3JvdGU6Cj4+IEZvbGxvd2luZyB1cCBvbiB0aGlzLgo+Pgo+PiBTbyBiYXNlZCBvbiB5
b3VyIGhpbnRzIEkgdGhpbmsgSSBtYXkgaGF2ZSBhIHNvbHV0aW9uIHN1Y2ggdGhhdDoKPj4KPj4g
KGRlZnR5cGUgbXkta2V5d29yZCAoKSAna2V5d29yZCkKPj4gKGRlZm1ldGhvZCBjbHNxbC1zeXM6
ZGF0YWJhc2Utb3V0cHV0LXNxbC1hcy10eXBlCj4+ICAgICAgICgodHlwZSAoZXFsICdteS1rZXl3
b3JkKSkgKHZhbCBzeW1ib2wpIGRhdGFiYXNlIGRiLXR5cGUpCj4+ICAgIChzdHJpbmcgdmFsKSkK
Pj4gKGRlZm1ldGhvZCBjbHNxbC1zeXM6cmVhZC1zcWwtdmFsdWUKPj4gICAgICAgKCh2YWwgc3Ry
aW5nKSAodHlwZSAoZXFsICdteS1rZXl3b3JkKSkgZGF0YWJhc2UgZGItdHlwZSkKPj4gICAgKGlu
dGVybiB2YWwgOmtleXdvcmQpKQo+Pgo+PiAoZGVmLXZpZXctY2xhc3MgdGVzdGt3MiAoKQo+PiAg
ICAoKGt3IDphY2Nlc3NvciB0ZXN0a3cyLWt3IDppbml0YXJnIDprdyA6dHlwZSBteS1rZXl3b3Jk
KSkpCj4+IChjcmVhdGUtdmlldy1mcm9tLWNsYXNzICd0ZXN0a3cyKQo+PiAoZGVmcGFyYW1ldGVy
ICppKiAobWFrZS1pbnN0YW5jZSAndGVzdGt3MiA6a3cgOmhlaSkpCj4+ICh1cGRhdGUtcmVjb3Jk
cy1mcm9tLWluc3RhbmNlICppKikKPj4KPj4gQXQgdGhpcyBwb2ludCBJIGNhbiBmaW5kIHRoZSBv
YmplY3Q6Cj4+Cj4+IChzZWxlY3QgJ3Rlc3RrdzIgOndoZXJlIFs9IFtrd10gOmhlaV0pCj4+Cj4+
IEFuZCB0aGUgc3RvcmFnZSBsb29rcyBsaWtlIEkgd2FudDoKPj4KPj4gZmphcz0jIHNlbGVjdCAq
IGZyb20gdGVzdGt3MjsKPj4gKy0tLS0tKwo+PiB8IGt3ICB8Cj4+ICstLS0tLSsKPj4gfCBIRUkg
fAo+PiArLS0tLS0rCj4+ICgxIHJvdykKPj4KPj4gRG9lcyB0aGF0IHNlZW0gbGlrZSBhIHJlYXNv
bmFibGUgc29sdXRpb24/Cj4+Cj4+Cj4+IE9uIDIwMTYtMDgtMTYgMTM6MzAsIFN0aWFuIFNsZXRu
ZXIgd3JvdGU6Cj4+PiBIaSBSdXNzLgo+Pj4KPj4+IFRoYW5rcyBmb3IgYSB2ZXJ5IHRob3JvdWdo
IGFuZCBpbmZvcm1hdGl2ZSByZXBseS4gIEknbSBhIGxpdHRsZSBjb25mdXNlZAo+Pj4gaGVyZSwg
c28gYmVhciB3aXRoIG1lIC0tIGxlYXZpbmcgdGhlIGVudW0gaXNzdWUgYXNpZGUgZm9yIGEgbWlu
dXRlLCBhcwo+Pj4gaXQgc2hvdWxkbid0IGJlIGEgaHVnZSBwcm9ibGVtIHRvIGNoYW5nZSB0byBh
IHRleHQgZmllbGQgLS0gaG93IGFyZQo+Pj4ga2V5d29yZCB0eXBlIGZpZWxkcyBzdXBwb3NlZCB0
byBiZSB1c2VkIGF0IGFsbD8gIEl0IGRvZXNuJ3Qgc2VlbQo+Pj4gcG9zc2libGUgdG8gU0VMRUNU
IG9uIHRoZW0uCj4+Pgo+Pj4gSWYgSSBsZWF2ZSBpdCBhbGwgdXAgdG8gQ0xTUUw6Cj4+Pgo+Pj4g
KGRlZi12aWV3LWNsYXNzIHRlc3RrdyAoKQo+Pj4gICAgKChrdyA6YWNjZXNzb3IgdGVzdGt3LWt3
IDppbml0YXJnIDprdyA6dHlwZSBrZXl3b3JkKSkpCj4+PiAoY3JlYXRlLXZpZXctZnJvbS1jbGFz
cyAndGVzdGt3KQo+Pj4gKGRlZnBhcmFtZXRlciAqaSogKG1ha2UtaW5zdGFuY2UgJ3Rlc3RrdyA6
a3cgOmhlaSkpCj4+PiAodXBkYXRlLXJlY29yZHMtZnJvbS1pbnN0YW5jZSAqaSopCj4+Pgo+Pj4g
VGhlbiBJIGdldCBhIHRhYmxlIGxpa2UgdGhpczoKPj4+Cj4+PiBmamFzPSMgXGQgdGVzdGt3Cj4+
PiAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVzdGt3Igo+Pj4gKy0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSsKPj4+IHwgQ29sdW1uIHwgICAgICAgICAg
VHlwZSAgICAgICAgICB8IE1vZGlmaWVycyB8Cj4+PiArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tKwo+Pj4gfCBrdyAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZygy
NTUpIHwgICAgICAgICAgIHwKPj4+ICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0rCj4+Pgo+Pj4gZmphcz0jIHNlbGVjdCAqIGZyb20gdGVzdGt3Owo+Pj4gKy0t
LS0tLSsKPj4+IHwgIGt3ICB8Cj4+PiArLS0tLS0tKwo+Pj4gfCA6SEVJIHwKPj4+ICstLS0tLS0r
Cj4+PiAoMSByb3cpCj4+Pgo+Pj4gV2hpY2ggaXMgZmluZSwgYnV0IEkgc3RpbGwgY2FuJ3Qgc2Vs
ZWN0IG9uIHRoZSBrZXl3b3JkOgo+Pj4KPj4+ICogKHNlbGVjdCBba3ddIDpmcm9tIFt0ZXN0a3dd
KQo+Pj4gOzsgMjAxNi0wOC0xNlQxMjo0MzoyNSAvZmphcy9zdGlhbiA9PiBTRUxFQ1QgS1cgRlJP
TSBURVNUS1cKPj4+ICgoIjpIRUkiKSkKPj4+ICgia3ciKQo+Pj4KPj4+ICogKHNlbGVjdCBba3dd
IDpmcm9tIFt0ZXN0a3ddIDp3aGVyZSBbPSBba3ddIDpoZWldKQo+Pj4gOzsgMjAxNi0wOC0xNlQx
Mjo0MzozNSAvZmphcy9zdGlhbiA9PiBTRUxFQ1QgS1cgRlJPTSBURVNUS1cgV0hFUkUgKEtXID0K
Pj4+ICdIRUknKQo+Pj4gTklMCj4+PiAoImt3IikKPj4+Cj4+PiBUaGlzIHdvcmtzLCBidXQgd291
bGQgYmUgdmVyeSBjdW1iZXJzb21lIHRvIGFkYXB0IHRvOgo+Pj4KPj4+IChzZWxlY3QgW2t3XSA6
ZnJvbSBbdGVzdGt3XSA6d2hlcmUgWz0gW2t3XSAiOkhFSSJdKQo+Pj4gOzsgMjAxNi0wOC0xNlQx
Mjo0NTo0OSAvZmphcy9zdGlhbiA9PiBTRUxFQ1QgS1cgRlJPTSBURVNUS1cgV0hFUkUgKEtXID0K
Pj4+ICc6SEVJJykKPj4+ICgoIjpIRUkiKSkKPj4+ICgia3ciKQo+Pj4KPj4+IEJUVyBJIGFncmVl
IHRoYXQgZW51bSB0eXBlcyBhcmUgcHJvYmFibHkgbm90IHVzZWQgdW5pZm9ybWx5IGFjcm9zcwo+
Pj4gZGlmZmVyZW50IGRhdGFiYXNlcywgYW5kIGlzIHByb2JhYmx5IGJldHRlciBsZWZ0IG91dC4g
IEl0IHNlZW1zIHRvIG1lCj4+PiBub3cgdGhhdCBpdCB3YXMgbm90IHRoZSBjZW50cmFsIHBhcnQg
b2YgbXkgcHJvYmxlbSBhbnl3YXkuICBBZ2FpbiwgSSdtCj4+PiBqdXN0IGNvbmZ1c2VkLgo+Pj4K
Pj4+IFBTOiBJbiBteSBjb2RlIHdhbmRlcmluZ3MgSSBjYW1lIGFjcm9zcyB0aGVzZSBjYXNlcyBp
biBvb2RtbC5saXNwOgo+Pj4KPj4+IChkZWZtZXRob2QgZGF0YWJhc2Utb3V0cHV0LXNxbC1hcy10
eXBlCj4+PiAuLi4KPj4+ICAgICAgIChjYXNlIHR5cGUKPj4+ICAgICAgICAgKChvciBzeW1ib2wg
a2V5d29yZCkKPj4+ICAgICAgICAgIChwcmludC1yZWFkYWJsZS1zeW1ib2wgdmFsKSkKPj4+ICAg
ICAgICAgKHN0cmluZyB2YWwpCj4+PiAuLi4KPj4+Cj4+PiAoZGVmbWV0aG9kIHJlYWQtc3FsLXZh
bHVlICh2YWwgdHlwZSBkYXRhYmFzZSBkYi10eXBlKQo+Pj4gLi4uCj4+PiAgICAgICAgIChjaGFy
IChzdHJpbmcgKHNjaGFyIHZhbCAwKSkpCj4+PiAgICAgICAgICgob3Iga2V5d29yZCBzeW1ib2wp
Cj4+PiAgICAgICAgICAocmVhZC1mcm9tLXN0cmluZyB2YWwpKQo+Pj4gICAgICAgICAoKHNtYWxs
aW50IG1lZGl1bWludCBiaWdpbnQgaW50ZWdlciB1bml2ZXJzYWwtdGltZSkKPj4+IC4uLgo+Pj4K
Pj4+IEkgY291bGQgYmUgd3JvbmcsIGJ1dCBpbiBib3RoIG9mIHRoZXNlIHRoZSAib3IiIGxvb2tz
IGxpa2UgaXQgY291bGQgYmUgYQo+Pj4gbWlzdGFrZS4KPj4+Cj4+Pgo+Pj4gT24gMjAxNi0wOC0x
NSAxODo0NywgUnVzcyBUeW5kYWxsIHdyb3RlOgo+Pj4+IEhvd2R5IFN0aWFuLAo+Pj4+Cj4+Pj4g
SGVyZSBhcmUgdGhlIHJlbGV2YW50IGRpc2N1c3Npb25zIGFyb3VuZCB0aGlzIGZyb20gMjAxNC0w
NCB0aGlzOgo+Pj4+IGh0dHA6Ly9saXN0cy5rcGUuaW8vcGlwZXJtYWlsL2Nsc3FsLzIwMTQtQXBy
aWwvdGhyZWFkLmh0bWwKPj4+PiBodHRwczovL2dpdGh1Yi5jb20vVW53YXNoZWRNZW1lL2Nsc3Fs
L2NvbW1pdC8zMWFlODJmMWUwYWVmY2RkMTFhMjUyMzliNmZiMjFjMTNkMzhkOWYyCj4+Pj4KPj4+
PiBUaGUgZWFzaWVzdCB3YXkgdG8gYnlwYXNzIHRoaXMgd291bGQgYmUgdG8gY2hhbmdlIHRoZSBr
ZXl3b3JkcyB0bwo+Pj4+IHN5bWJvbHMgb3Igc3RyaW5ncy4gIFlvdSBjYW4gZG8gdGhpcyBkaXJl
Y3RseSB1c2luZyB0aGUgOmRiLXR5cGUKPj4+PiBhcmd1bWVudCBhbmQgc3BlY2lhbGl6aW5nIHRo
ZSBmb2xsb3dpbmcgZnVuY3Rpb25zLgo+Pj4+Cj4+Pj4gYAo+Pj4+IChkZWZtZXRob2QgZGF0YWJh
c2Utb3V0cHV0LXNxbC1hcy10eXBlICh0eXBlIHZhbCBkYXRhYmFzZSBkYi10eXBlKS4uLikKPj4+
PiAoZGVmbWV0aG9kIHJlYWQtc3FsLXZhbHVlICh2YWwgdHlwZSBkYXRhYmFzZSBkYi10eXBlKSAu
Li4pCj4+Pj4gYAo+Pj4+Cj4+Pj4gSWYgeW91IHVzZSBhIGA6ZGItdHlwZSAgJ2VudW1gIHdlIGNv
dWxkIHVzZSB0aGF0IHRvIGRpcmVjdCBjbHNxbCB0bwo+Pj4+IHdyaXRlICB0aGUgc2xvdCBjb250
ZW50cyBhcyBhIHN0cmluZyB2YWx1ZSBpbiB5b3VyIGFwcGxpY2F0aW9uLCAob3Igd2UKPj4+PiBj
b3VsZCBhZGQgaXQgdG8gY2xzcWwgZGlyZWN0bHkgYXMgdGhhdCBzZWVtcyBmYWlybHkgaW50dWl0
aXZlIC0gYWx0aG91Z2gKPj4+PiBlbnVtcyBjb3VsZCBhbHNvIGJlIGludGVnZXIgdmFsdWVkIC0g
ZWc6IHR5cGVzIHRhYmxlcykuCj4+Pj4KPj4+PiBFeGFtcGxlOgo+Pj4+IGAKPj4+PiAoZGVmbWV0
aG9kIGRhdGFiYXNlLW91dHB1dC1zcWwtYXMtdHlwZQo+Pj4+ICAgICAgICgodHlwZSAnZW51bSkg
KHZhbCBzeW1ib2wpIGRhdGFiYXNlIGRiLXR5cGUpCj4+Pj4gICAgICAocHJpbmMtdG8tc3RyaW5n
IHZhbCkpCj4+Pj4gKGRlZm1ldGhvZCByZWFkLXNxbC12YWx1ZQo+Pj4+ICAgICAgICgodHlwZSAn
ZW51bSkgKHZhbCBzdHJpbmcpIGRhdGFiYXNlIGRiLXR5cGUpCj4+Pj4gICAgICAobGV0ICgoKnBh
Y2thZ2UqIDprZXl3b3JkKSkgKHJlYWQtZnJvbS1zdHJpbmcgdmFsKSkKPj4+PiBgCj4+Pj4KPj4+
Pgo+Pj4+IFRoZSBwcm9ibGVtIHdhcyB0aGF0IHRoYXQgYWxsIHN5bWJvbHMgd2VyZSBiZWluZyB3
cml0dGVuIHRoZSBzYW1lCj4+Pj4gcmVnYXJkbGVzcyBvZiBwYWNrYWdlIChtYWtpbmcgdGhlbSBu
b3QgcmV2ZXJzaWJsZSBpbiB0aGUgZmFjZSBvZgo+Pj4+IG11bHRpcGxlIHBhY2thZ2VzKSwgSUU6
IHRoZXkgd2VyZSBub3Qgcm91bmQgdHJpcCBzYWZlLiAgVGhlIHNvbHV0aW9uCj4+Pj4gd2UvSSBj
YW1lIHVwIHdpdGggd2FzIHRvIHdyaXRlIHN5bWJvbHMgd2l0aCB0aGUgcGFja2FnZSBuYW1lIGlu
Y2x1ZGVkLAo+Pj4+IHN1Y2ggdGhhdCB3ZSBjb3VsZCBsb29rIHVwIHRoZSBjb3JyZWN0IHN5bWJv
bCB3aGVuIHJlYWRpbmcgZnJvbSB0aGUKPj4+PiBkYXRhYmFzZS4gIFRoaXMgc3lzdGVtIGlzIGZh
aXJseSBjb21wbGV4IGFuZCBJIGFtIG5vdCBzdXJlIHRoYXQgYQo+Pj4+IHNvbHV0aW9uIGV4aXN0
cyB0aGF0IHNvbHZlcyB0aGUgY2FzZSBmb3IgYWxsIHVzZXJzLiAgSSB0aGluawo+Pj4+IGZ1bmRh
bWVudGFsbHkgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIHJl
dmVyc2libGUsCj4+Pj4gd2hpY2ggcmVxdWlyZXMgcHJpbnRpbmcgdGhlIHBhY2thZ2UgbmFtZSBv
ZiBhIHN5bWJvbCBmb3IgYGRiLXR5cGUgJ3N5bWJvbGAuCj4+Pj4KPj4+PiBJIGhhdmUgbmV2ZXIg
dXNlZCBQb3N0Z3Jlc3FsIGVudW1zLCBhbmQgdGhlcmUgYXJlIG5vdCBpbiB0aGUgdGVzdHMsIHNv
Cj4+Pj4gaXRzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgY291bGQgaGF2ZSBicm9rZW4gdW5u
b3RpY2VkLiAgVGhlcmUgd2FzCj4+Pj4gc29tZSB3b3JrIHF1aXRlIGEgZmV3IHZlcnNpb25zIGFn
byB0byBub3JtYWxpemUgaGFuZGxpbmcgb2Ygc3ltYm9scywgc28KPj4+PiBpdHMgcG9zc2libGUg
c29tZXRoaW5nIGlzIHN0aWxsIG5vdCBxdWl0ZSByaWdodCwgYnV0IGl0IGhhcyBhIG11Y2ggbW9y
ZQo+Pj4+IG5vcm1hbGl6ZWQgaGFuZGxpbmcuCj4+Pj4KPj4+PiBJZiB5b3UgdGhpbmsgdGhpcyBz
aG91bGQgYmUgcmVhc29uYWJsZSBzdGFuZGFyZCBiZWhhdmlvciAoSSBhbSBub3QKPj4+PiBjb252
aW5jZWQgb2YgdGhpcykgYW5kIGNhbiBjb252aW5jZSBtZSBvZiB0aGlzLCBJIHdvdWxkIGJlIHdp
bGxpbmcgdG8KPj4+PiBhZGQgaXQgYXMgc3RhbmRhcmQuICBNeSBjb25jZXJuIGlzIHRoYXQgc29t
ZSBmb2xrcyB3aWxsIGludGVycHJldCAiZW51bSIKPj4+PiBhcyBzeW1ib2w9PmlkIG1hcCAoYSBk
YXRhYmFzZSB0eXBlcyB0YWJsZSkgaW5zdGVhZCBvZiBhIGtleXdvcmQgPT4KPj4+PiBzdHJpbmcg
bWFwLiAgQXMgYm90aCBvZiB0aGVzZSBzZWVtIHJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb25zIG9m
IHRoZQo+Pj4+IHdvcmQsIGl0IG1pZ2h0IGJlIGJldHRlciB0byBsZWF2ZSB0aGlzIGFzIGFwcGxp
Y2F0aW9uIHNwZWNpZmljIGJlaGF2aW9yLgo+Pj4+Cj4+Pj4gQ2hlZXJzIGFuZCB0aGFua3MgZm9y
IHVzaW5nIENMU1FMLAo+Pj4+IFJ1c3MgVHluZGFsbAo+Pj4+IEFjY2VsZXJhdGlvbi5uZXQKPj4+
Pgo+Pj4+IE9uIDA4LzEyLzIwMTYgMDY6MTIgQU0sIFN0aWFuIFNsZXRuZXIgd3JvdGU6Cj4+Pj4+
IFtUcnlpbmcgYWdhaW4sIHdhcyBzdWJzY3JpYmVkIHdpdGggdGhlIHdyb25nIGFkZHJlc3MuXQo+
Pj4+Pgo+Pj4+PiBIZWxsby4KPj4+Pj4KPj4+Pj4gSSBuZWVkIHNvbWUgaGVscCB3aXRoIGEgQ0xT
UUwgYmVoYXZpb3VyIGNoYW5nZS4gIFRoZSBpc3N1ZSBpcyB0aGF0IEkKPj4+Pj4gaGF2ZSBhIFBv
c3RncmVzIGVudW0gdHlwZSBsaWtlIHNvOgo+Pj4+Pgo+Pj4+PiBDUkVBVEUgVFlQRSBqb2Jfc3Rh
dHVzIEFTIEVOVU0gKAo+Pj4+PiAgICAgICAnTkVXJywKPj4+Pj4gICAgICAgJ1JVTk5JTkcnLAo+
Pj4+PiAgICAgICAnRE9ORScsCj4+Pj4+ICAgICAgICdGQUlMRUQnLAo+Pj4+PiAgICAgICAnQUJP
UlRFRCcKPj4+Pj4gKTsKPj4+Pj4KPj4+Pj4gVGhpcyBpcyB1c2VkIGluIGEgY29sdW1uIHdpdGgg
YSBzbG90IGRlZmluaXRpb24gbGlrZSBzbzoKPj4+Pj4KPj4+Pj4gICAgICAoam9iLXN0YXR1cyA6
aW5pdGFyZyA6am9iLXN0YXR1cyA6YWNjZXNzb3Igam9iLXN0YXR1cyA6aW5pdGZvcm0gOm5ldwo+
Pj4+PiAgICAgICAgICAgICAgICAgIDp0eXBlIGtleXdvcmQpCj4+Pj4+Cj4+Pj4+IFRoaXMgdXNl
ZCB0byBtYXAgYmFjayBhbmQgZm9ydGggZnJvbSBrZXl3b3JkcyBmaW5lIGZvciBtYW55IHllYXJz
LCBidXQKPj4+Pj4gaW4gdGhlIGxhdGVzdCBDTFNRTCB2ZXJzaW9ucyBpdCB0cmllcyB0byBzdG9y
ZSB0aGUga2V5d29yZHMgd2l0aCBjb2xvbi4KPj4+Pj4gICAgU29tZSB0aGluZ3Mgd29yayBhcyBl
eHBlY3RlZDoKPj4+Pj4KPj4+Pj4gKiAoc2VsZWN0IC4uLiA6d2hlcmUgWz0gW2pvYi1zdGF0dXNd
IDpuZXddKQo+Pj4+Pgo+Pj4+PiA7OyAyMDE2LTA4LTExVDEzOjI0OjM1IC4uLiA9PiBTRUxFQ1Qg
Li4uIEZST00gLi4uIFdIRVJFIChKT0JfU1RBVFVTID0gJ05FVycpCj4+Pj4+Cj4+Pj4+IEJ1dCBm
b3IgZXhhbXBsZSBVUERBVEUtUkVDT1JEUy1GUk9NLUlOU1RBTkNFIHRyaWVzIHRvIHN0b3JlIHdp
dGggY29sb246Cj4+Pj4+Cj4+Pj4+ICAgICBFcnJvciAyMlAwMiAvIGludmFsaWQgaW5wdXQgdmFs
dWUgZm9yIGVudW0gam9iX3N0YXR1czogIjpGQUlMRUQiCj4+Pj4+Cj4+Pj4+IEkgZG9uJ3Qga25v
dyBpZiB0aGlzIGlzIGEgYnVnIG9yIHdoZXRoZXIgaXQgd2FzIG5ldmVyIHN1cHBvc2VkIHRvIHdv
cmsKPj4+Pj4gbGlrZSB0aGlzLCBpZiBzbyBJJ2QgYXBwcmVjaWF0ZSBhbnkgdGlwcyBvbiBob3cg
aXQgc2hvdWxkIGJlIGRvbmUuCj4+Pj4+Cj4+Pj4KPj4+Cj4+Cj4gCj4gCgoKLS0gClN0aWFuIFNs
ZXRuZXIKVC4gKzQ3IDIxIDUzIDY5IDQwCkNvcHlsZWZ0IFNvbHV0aW9ucwp3d3cuY29weWxlZnRz
b2x1dGlvbnMuY29tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCkNMU1FMIG1haWxpbmcgbGlzdApDTFNRTEBsaXN0cy5rcGUuaW8KaHR0cDovL2xpc3RzLmtw
ZS5pby9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vY2xzcWwK