Re: Is it possible for an inbound connector to invoke servlet?

Simon Aquilina <[email protected]> Wed, 10 Dec 2008 00:46:48 +0100
Newsgroups gmane.comp.java.sun.connector
Message-ID <[email protected]>
--_79af1183-96c1-4470-a2f9-bc854aaed3c6_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQpIaSBRaUp1biBZYW5nLA0KDQpUaGFuayB5b3UgYWdhaW4gZm9yIHlvdXIgcmVwbHkuIEkgaGF2
ZSBjaGVja2VkDQp0aGUgajJlZSB0dXRvcmlhbCBhcyB5b3Ugc3VnZ2VzdGVkLiBJZiBJIHVzZSB0
aGlzIG1ldGhvZCB0aGVuIEkgd291bGQNCmltcGxlbWVudCB0aGF0IGNvZGUgd2l0aGluIHRoZSBN
ZXNzYWdlIERyaXZlbiBCZWFuIChNREIpIGVuZHBvaW50LiANCg0KSG93ZXZlcg0KSSBzZWUgb25s
eSBvbmUgcHJvYmxlbSB3aXRoIHRoZSBhYm92ZSBkZXNpZ24uIExpa2UgdGhhdCBteSBSZXNvdXJj
ZQ0KQWRhcHRlciAoUkEpIHdvdWxkIGNhbGwgdGhlIE1EQiBhbmQgdGhlIE1EQiB3b3VsZCB0aGVu
IGNhbGwgdGhlDQpTZXJ2bGV0LiBIb3dldmVyIGluIHRoZSBKYXZhIEVFIDUgVHV0b3JpYWwsIENo
YXB0ZXIgMzUsIEFib3V0IFJlc291cmNlDQpBZGFwdGVycyAoaHR0cDovL2phdmEuc3VuLmNvbS9q
YXZhZWUvNS9kb2NzL3R1dG9yaWFsL2RvYy9ibmNqeS5odG1sKQ0KdGhlcmUgaXMgYSBkaWFncmFt
IHdoaWNoIHNlZW1zIHRvIGluZGljYXRlIHRoYXQgdGhlIFJBIHNob3VsZCBiZSBhYmxlDQp0byBj
YWxsIHRoZSBXZWIgQ29tcG9uZW50cyBkaXJlY3RseS4gQXJlbid0IHNlcnZsZXRzIGFsc28gV2Vi
DQpDb21wb25lbnRzPyBJZiB5ZXMgdGhlbiBzaG91bGQndCB0aGUgUkEgYmUgYWJsZSB0byBpbnZv
a2UgYSBzZXJ2bGV0DQpkaXJlY3RseSBieSB1c2luZyB0aGUgTWVzc2FnZUVuZHBvaW50RmFjdG9y
eSwgd2l0aCB0aGUgZGlmZmVyZW5jZSB0aGF0DQp0aGUgTWVzc2FnZSBFbmRwb2ludCBpbiB0aGlz
IGNhc2Ugd291bGQgYmUgdGhlIHdhbnRlZCBzZXJ2bGV0IHJhdGhlcg0KdGhlbiBhbiBNREIuIEkg
ZG8gbm90IGtub3cgaWYgbXkgbGluZSBvZiB0aG91Z2h0IGlzIGNsZWFyIGVub3VnaC4gSWYNCm5v
dCBwbGVhc2UgZG8gbm90IGhlc2l0YXRlIHRvIHRlbGwgbWUgYW5kIEkgd2lsbCB0cnkgdG8gcmVw
aHJhc2UgOikNCg0KSQ0Kd2lsbCBhbHNvIHRha2UgeW91ciBzdWdnZXN0aW9uIGFuZCBhc2sgdGhl
IHF1ZXN0aW9uIGFib3V0IGFuIEFkYXB0ZXIgb24NCnRoZSBhcGFjaGUgZm9ydW0gdG8gc2VlIHdo
YXQgdGhleSBzYXkgYXMgd2VsbC4gQWdhaW4gdGhhbmsgeW91IHZlcnkNCm11Y2ggZm9yIHlvdXIg
aW50ZXJlc3QgYW5kIHJlcGxpZXMgOikgdGhleSBhcmUgcmVhbGx5IGFwcmVjaWF0ZWQuDQoNCkJl
c3QgUmVnYXJkcywNClNpbW9uIEouIEFxdWlsaW5hDQoNCkRhdGU6IEZyaSwgNSBEZWMgMjAwOCAx
NDowMzowOSArMDgwMA0KRnJvbTogd2VhbHRoZXJAMTYzLkNPTQ0KU3ViamVjdDogUmU6IElzIGl0
IHBvc3NpYmxlIGZvciBhbiBpbmJvdW5kIGNvbm5lY3RvciB0byBpbnZva2Ugc2VydmxldD8NClRv
OiBDT05ORUNUT1ItSU5URVJFU1RASkFWQS5TVU4uQ09NDQoNCmkgYW0gc29ycnksIGkgZG9uJ3Qg
a25vdyBqY2EgdG9vIG11Y2guDQpidXQgaSB0aGluayB0aGUgYmVsb3cgY29kZSBtYXkgYmUgYSBs
aXR0bGUgaGVscCB0byB5b3UuDQogDQogDQpwYWNrYWdlIG9yZy54ZnJlZS51cmw7DQppbXBvcnQg
amF2YS5pby5CdWZmZXJlZFJlYWRlcjsNCmltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOw0KaW1w
b3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7DQppbXBvcnQgamF2YS5uZXQuTWFsZm9ybWVk
VVJMRXhjZXB0aW9uOw0KaW1wb3J0IGphdmEubmV0LlVSTDsNCmltcG9ydCBqYXZhLm5ldC5VUkxD
b25uZWN0aW9uOw0KcHVibGljIGNsYXNzIFVSTENvbm5lY3Rpb25UZXN0IHsNCiBwdWJsaWMgc3Rh
dGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7DQogIFN0cmluZyB1cmxOYW1lID0gImh0dHA6
Ly93d3cuZ29vZ2xlLmNvbSI7DQogIGlmIChhcmdzLmxlbmd0aCAhPSAwKSB7DQogICB1cmxOYW1l
ID0gYXJnc1swXTsNCiAgfQ0KICB0cnkgew0KICAgVVJMIHVybCA9IG5ldyBVUkwodXJsTmFtZSk7
DQogICBVUkxDb25uZWN0aW9uIGNvbiA9IHVybC5vcGVuQ29ubmVjdGlvbigpOw0KICAgY29uLnNl
dERvSW5wdXQodHJ1ZSk7DQogICBjb24uc2V0RG9PdXRwdXQodHJ1ZSk7DQogICBCdWZmZXJlZFJl
YWRlciByZWFkZXIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKA0K
ICAgICBjb24uZ2V0SW5wdXRTdHJlYW0oKSkpOw0KICAgU3lzdGVtLm91dC5wcmludGxuKHJlYWRl
ci5yZWFkTGluZSgpKTsNCiAgfSBjYXRjaCAoTWFsZm9ybWVkVVJMRXhjZXB0aW9uIGUpIHsNCiAg
IC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2sNCiAgIGUucHJpbnRTdGFja1RyYWNl
KCk7DQogIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsNCiAgIC8vIFRPRE8gQXV0by1nZW5lcmF0
ZWQgY2F0Y2ggYmxvY2sNCiAgIGUucHJpbnRTdGFja1RyYWNlKCk7DQogIH0NCiB9DQp9DQogDQp5
b3UgY2FuIGdldCBtb3JlIGluZm9ybWF0aW9uIGF0IGh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZS8x
LjQuMi9kb2NzL2FwaS9qYXZhL25ldC9VUkxDb25uZWN0aW9uLmh0bWwuDQoNCllvdXJzIHNpbmNl
cmVseSwNClFpSnVuIFlhbmcNCg0K5ZyoMjAwOC0xMi0wNO+8jCJTaW1vbiBBcXVpbGluYSIgPHNp
bTA4NUBIT1RNQUlMLkNPTT4g5YaZ6YGT77yaDQoNCkhpIGFnYWluLA0KDQpTaW5jZSBJIGRpZCBu
b3QgcmVjZWl2ZSBhbnkgcmVwbHkgSSB0aG91Z2h0IHRvIHNlbmQgYW5vdGhlciBlbWFpbCB3aXRo
IHRoZSBhZGRpdGlvbmFsIHJlLXNlYXJjaCBJIGRpZC4gQmFzaWNhbGx5IGZyb20gdGhlIGRpYWdy
YW0gb24gc2xpZGUgZml2ZSAoNSkgb2YgdGhlIHByZXNlbnRhdGlvbiAnSmF2YeKEoiBFRSBDb25u
ZWN0b3JzIERlbXlzdGlmaWVkJyBieSBCaW5vZCBQLkcsIEdlb3JnZSBUaGFyYWthbiwgU2l2YWt1
bWFyIFRoeWFnYXJhamFuIGl0IGlzIGNsZWFyIHRoYXQgYSBjdXN0b20gY29ubmVjdG9yIHNob3Vs
ZCBiZSBhYmxlIHRvIGludm9rZSBhIGRlcGxveWVkIHNlcnZsZXQuDQoNCkhhdmluZyBzYWlkIHRo
YXQgSSBzdGlsbCBjYW5ub3QgdW5kZXJzdGFuZCBob3cgdGhpcyBjYW4gYmUgZG9uZS4gSW4gdGhl
IGRvY3VtZW50ICdKMkVF4oSiIENvbm5lY3RvciBBcmNoaXRlY3R1cmUgU3BlY2lmaWNhdGlvbicg
dGhlcmUgaXMgYSB3aG9sZSBjaGFwdGVyIG9uIGhvdyB0byBpbnZva2UgYW4gRUpCIChDaGFwdGVy
IDEzKSBob3dldmVyIEkgY2Fubm90IGZpbmQgYW55dGhpbmcgYWJvdXQgU2VydmxldCBJbnZva2F0
aW9uLiBJIGFsc28gZG93bmxvYWRlZCB0aGUgU2VydmxldCBTcGVjaWZpY2F0aW9uIGRvY3VtZW50
IGJ1dCBjYW5ub3QgcmVhbGx5IG1hcCB0aGUgdHdvIHRvZ2V0aGVyIChwcm9iYWJibHkgZHVlIHRv
IG15IGxpdHRsZSBrbm93bGVkZ2UgYWJvdXQgdGhlIHN1YmplY3QpLiBJIGhhdmUgYWxzbyBjaGVj
a2VkIGhvdyB0aGUgSHR0cCBDb25uZWN0b3Igb2YgVG9tY2F0IHdvcmtzIGFuZCBoZXJlIEkgZm91
bmQgb3V0IHRoYXQgdGhlIFRvbWNhdCB3aGVuIGxvYWRlZCB0aGUgSHR0cCBDb25uZWN0b3Igd2ls
bCBwcm92aWRlIGFuIEFkYXB0ZXIgaW4gb3JkZXIgdG8gaW52b2tlIFNlcnZsZXRzIGhvd2V2ZXIg
ZG8gbm90IGtub3cgaWYgdGhpcyBpcyBhbHNvIHRoZSBjYXNlIGZvciBhIEpFRSBBcHBsaWNhdGlv
biBTZXJ2ZXIsIG5vciBkbyBJIGtub3cgaWYgSSBoYXZlIHRvIHNldCBzb21lIGV4dHJhIGNvbmZp
Z3VyYXRpb24gdG8gaGF2ZSBzdWNoIGFuIG9iamVjdCBhdmFpbGFibGUuDQoNClRoYW5rcyBhbmQg
UmVnYXJkcywNClNpbW9uIEouIEFxdWlsaW5hDQoNCg0KDQpGcm9tOiBzaW0wODVAaG90bWFpbC5j
b20NClRvOiBjb25uZWN0b3ItaW50ZXJlc3RAamF2YS5zdW4uY29tDQpTdWJqZWN0OiBJcyBpdCBw
b3NzaWJsZSBmb3IgYW4gaW5ib3VuZCBjb25uZWN0b3IgdG8gaW52b2tlIHNlcnZsZXQ/DQpEYXRl
OiBNb24sIDEgRGVjIDIwMDggMjE6MDA6MTAgKzAxMDANCg0KDQoNCg0KDQoNCkhpLA0KDQpJIGFt
IG5vdCBzdXJlIGlmIHRoaXMgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIGFzayB0aGlzIHF1ZXN0aW9u
LiBNeSBxdWVzdGlvbiBpcyByZWxhdGVkIHRvIGluYm91bmQgY29ubmVjdG9ycy4gRnJvbSB3aGF0
IEkgY2FuIHVuZGVyc3RhbmQgYW4gYXBwbGljYXRpb24gc2VydmVyIHdpbGwgc3RhcnQgYSBSZXNv
dXJjZSBBZGFwdGVyIChSQSkuIFRoZW4gd2hlbiBhIE1lc3NhZ2UgRHJpdmVuIEJlYW4gKE1EQikg
aXMgZGVwbG95ZWQgdGhlIHJlbGF0ZWQgUkEgYXJlIGluZm9ybWVkLiBUaGUgUkEgd291bGQgdGhl
biBjcmVhdGUgYW4gRW5kcG9pbnQgQ29uc3VtZXIuIFdoZW4gYSBtZXNzYWdlIGlzIHJlY2VpdmVk
IGZyb20gYW4gRUlTIHRoZSBFbmRwb2ludCBDb25zdW1lciB3aWxsIGNhbGwgYSBtZXRob2QgZnJv
bSB0aGUgTURCLiANCg0KTm93IG15IHBsYW4gd2FzIHRvIGRldmVsb3Agc29tZXRoaW5nIHNpbWls
YXIgdG8gdGhlIGh0dHAgcHJvdG9jb2wuIFRoZSBFbnRlcnByaXNlIEluZm9ybWF0aW9uIFN5c3Rl
bSAoRUlTKSBtYWtlcyBhIHJlcXVlc3QsIHRoZSByZXF1ZXN0IGlzIHByb2Nlc3NlZCwgYW5kIGEg
cmVzcG9uc2UgaXMgcmV0dXJuZWQgaW4gWE1MIChvciBmb3JtYXQgdW5kZXJzdG9vZCBieSB0aGUg
RUlTKS4gQmVjYXVzZSBvZiB0aGlzIHNpbWlsYXJpdHkgSSB3YXMgd29uZGVyaW5nOyBJcyBpdCBw
b3NzaWJsZSB0aGF0IGFuIGluYm91bmQgY29ubmVjdG9yIGludm9rZXMgYSBkZXBsb3llZCBzZXJ2
bGV0PyANCg0KVGhhbmtzIGFuZCBSZWdhcmRzLA0KU2ltb24gSi4NCg0KDQoNCg0KDQoNCg0KSW52
aXRlIHlvdXIgbWFpbCBjb250YWN0cyB0byBqb2luIHlvdXIgZnJpZW5kcyBsaXN0IHdpdGggV2lu
ZG93cyBMaXZlIFNwYWNlcy4gSXQncyBlYXN5ISBUcnkgaXQhDQoNCg0KRGlzY292ZXIgdGhlIG5l
dyBXaW5kb3dzIFZpc3RhIExlYXJuIG1vcmUhID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBUbyB1bnN1YnNj
cmliZSwgc2VuZCBlbWFpbCB0byBsaXN0c2VydkBqYXZhLnN1bi5jb20gYW5kIGluY2x1ZGUgaW4g
dGhlIGJvZHkgb2YgdGhlIG1lc3NhZ2UgInNpZ25vZmYgQ09OTkVDVE9SLUlOVEVSRVNUIi4gRm9y
IGdlbmVyYWwgaGVscCwgc2VuZCBlbWFpbCB0byBsaXN0c2VydkBqYXZhLnN1bi5jb20gYW5kIGlu
Y2x1ZGUgaW4gdGhlIGJvZHkgb2YgdGhlIG1lc3NhZ2UgImhlbHAiLiANCg0KDQrnvZHmmJPlhY3o
tLnpgq7vvIzlhajnkIPmnIDlpKfnmoTkuK3mloflhY3otLnpgq7nrrENCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KVG8gdW5zdWJzY3JpYmUsIHNlbmQgZW1haWwgdG8gbGlzdHNlcnZAamF2YS5zdW4uY29t
IGFuZCBpbmNsdWRlIGluIHRoZSBib2R5DQpvZiB0aGUgbWVzc2FnZSAic2lnbm9mZiBDT05ORUNU
T1ItSU5URVJFU1QiLiAgRm9yIGdlbmVyYWwgaGVscCwgc2VuZCBlbWFpbCB0bw0KbGlzdHNlcnZA
amF2YS5zdW4uY29tIGFuZCBpbmNsdWRlIGluIHRoZSBib2R5IG9mIHRoZSBtZXNzYWdlICJoZWxw
Ii4NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fDQpJbnZpdGUgeW91ciBtYWlsIGNvbnRhY3RzIHRvIGpvaW4geW91ciBmcmll
bmRzIGxpc3Qgd2l0aCBXaW5kb3dzIExpdmUgU3BhY2VzLiBJdCdzIGVhc3khDQpodHRwOi8vc3Bh
Y2VzLmxpdmUuY29tL3NwYWNlc2FwaS5hc3B4P3d4X2FjdGlvbj1jcmVhdGUmd3hfdXJsPS9mcmll
bmRzLmFzcHgmbWt0PWVuLXVz

--_79af1183-96c1-4470-a2f9-bc854aaed3c6_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxzdHlsZT4NCi5obW1lc3NhZ2UgUA0Kew0KbWFyZ2luOjBweDsNCnBh
ZGRpbmc6MHB4DQp9DQpib2R5LmhtbWVzc2FnZQ0Kew0KZm9udC1zaXplOiAxMHB0Ow0KZm9udC1m
YW1pbHk6VmVyZGFuYQ0KfQ0KPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5IGNsYXNzPSdobW1lc3Nh
Z2UnPg0KSGkgUWlKdW4gWWFuZyw8YnI+PGJyPlRoYW5rIHlvdSBhZ2FpbiBmb3IgeW91ciByZXBs
eS4gSSBoYXZlIGNoZWNrZWQNCnRoZSBqMmVlIHR1dG9yaWFsIGFzIHlvdSBzdWdnZXN0ZWQuIElm
IEkgdXNlIHRoaXMgbWV0aG9kIHRoZW4gSSB3b3VsZA0KaW1wbGVtZW50IHRoYXQgY29kZSB3aXRo
aW4gdGhlIE1lc3NhZ2UgRHJpdmVuIEJlYW4gKE1EQikgZW5kcG9pbnQuIDxicj48YnI+SG93ZXZl
cg0KSSBzZWUgb25seSBvbmUgcHJvYmxlbSB3aXRoIHRoZSBhYm92ZSBkZXNpZ24uIExpa2UgdGhh
dCBteSBSZXNvdXJjZQ0KQWRhcHRlciAoUkEpIHdvdWxkIGNhbGwgdGhlIE1EQiBhbmQgdGhlIE1E
QiB3b3VsZCB0aGVuIGNhbGwgdGhlDQpTZXJ2bGV0LiBIb3dldmVyIGluIHRoZSBKYXZhIEVFIDUg
VHV0b3JpYWwsIENoYXB0ZXIgMzUsIEFib3V0IFJlc291cmNlDQpBZGFwdGVycyAoaHR0cDovL2ph
dmEuc3VuLmNvbS9qYXZhZWUvNS9kb2NzL3R1dG9yaWFsL2RvYy9ibmNqeS5odG1sKQ0KdGhlcmUg
aXMgYSBkaWFncmFtIHdoaWNoIHNlZW1zIHRvIGluZGljYXRlIHRoYXQgdGhlIFJBIHNob3VsZCBi
ZSBhYmxlDQp0byBjYWxsIHRoZSBXZWIgQ29tcG9uZW50cyBkaXJlY3RseS4gQXJlbid0IHNlcnZs
ZXRzIGFsc28gV2ViDQpDb21wb25lbnRzPyBJZiB5ZXMgdGhlbiBzaG91bGQndCB0aGUgUkEgYmUg
YWJsZSB0byBpbnZva2UgYSBzZXJ2bGV0DQpkaXJlY3RseSBieSB1c2luZyB0aGUgTWVzc2FnZUVu
ZHBvaW50RmFjdG9yeSwgd2l0aCB0aGUgZGlmZmVyZW5jZSB0aGF0DQp0aGUgTWVzc2FnZSBFbmRw
b2ludCBpbiB0aGlzIGNhc2Ugd291bGQgYmUgdGhlIHdhbnRlZCBzZXJ2bGV0IHJhdGhlcg0KdGhl
biBhbiBNREIuIEkgZG8gbm90IGtub3cgaWYgbXkgbGluZSBvZiB0aG91Z2h0IGlzIGNsZWFyIGVu
b3VnaC4gSWYNCm5vdCBwbGVhc2UgZG8gbm90IGhlc2l0YXRlIHRvIHRlbGwgbWUgYW5kIEkgd2ls
bCB0cnkgdG8gcmVwaHJhc2UgOik8YnI+PGJyPkkNCndpbGwgYWxzbyB0YWtlIHlvdXIgc3VnZ2Vz
dGlvbiBhbmQgYXNrIHRoZSBxdWVzdGlvbiBhYm91dCBhbiBBZGFwdGVyIG9uDQp0aGUgYXBhY2hl
IGZvcnVtIHRvIHNlZSB3aGF0IHRoZXkgc2F5IGFzIHdlbGwuIEFnYWluIHRoYW5rIHlvdSB2ZXJ5
DQptdWNoIGZvciB5b3VyIGludGVyZXN0IGFuZCByZXBsaWVzIDopIHRoZXkgYXJlIHJlYWxseSBh
cHJlY2lhdGVkLjxicj48YnI+QmVzdCBSZWdhcmRzLDxicj5TaW1vbiBKLiBBcXVpbGluYTxicj48
YnI+PGhyIGlkPSJzdG9wU3BlbGxpbmciPkRhdGU6IEZyaSwgNSBEZWMgMjAwOCAxNDowMzowOSAr
MDgwMDxicj5Gcm9tOiB3ZWFsdGhlckAxNjMuQ09NPGJyPlN1YmplY3Q6IFJlOiBJcyBpdCBwb3Nz
aWJsZSBmb3IgYW4gaW5ib3VuZCBjb25uZWN0b3IgdG8gaW52b2tlIHNlcnZsZXQ/PGJyPlRvOiBD
T05ORUNUT1ItSU5URVJFU1RASkFWQS5TVU4uQ09NPGJyPjxicj48ZGl2PmkgYW0gc29ycnksIGkg
ZG9uJ3Qga25vdyBqY2EgdG9vIG11Y2guPC9kaXY+DQo8ZGl2PmJ1dCBpIHRoaW5rIHRoZSBiZWxv
dyBjb2RlIG1heSBiZSBhIGxpdHRsZSBoZWxwJm5ic3A7dG8geW91LjwvZGl2Pg0KPGRpdj4mbmJz
cDs8L2Rpdj4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8ZGl2PnBhY2thZ2Ugb3JnLnhmcmVlLnVybDs8
L2Rpdj4NCjxkaXY+aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7PGJyPmltcG9ydCBqYXZh
LmlvLklPRXhjZXB0aW9uOzxicj5pbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjs8YnI+
aW1wb3J0IGphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbjs8YnI+aW1wb3J0IGphdmEubmV0
LlVSTDs8YnI+aW1wb3J0IGphdmEubmV0LlVSTENvbm5lY3Rpb247PC9kaXY+DQo8ZGl2PnB1Ymxp
YyBjbGFzcyBVUkxDb25uZWN0aW9uVGVzdCB7PGJyPiZuYnNwO3B1YmxpYyBzdGF0aWMgdm9pZCBt
YWluKFN0cmluZ1tdIGFyZ3MpIHs8YnI+Jm5ic3A7Jm5ic3A7U3RyaW5nIHVybE5hbWUgPSAiPGEg
aHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tIj5odHRwOi8vd3d3Lmdvb2dsZS5jb208L2E+Ijs8
YnI+Jm5ic3A7Jm5ic3A7aWYgKGFyZ3MubGVuZ3RoICE9IDApIHs8YnI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7dXJsTmFtZSA9IGFyZ3NbMF07PGJyPiZuYnNwOyZuYnNwO308L2Rpdj4NCjxkaXY+Jm5ic3A7
Jm5ic3A7dHJ5IHs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7VVJMIHVybCA9IG5ldyBVUkwodXJsTmFt
ZSk7PGJyPiZuYnNwOyZuYnNwOyZuYnNwO1VSTENvbm5lY3Rpb24gY29uID0gdXJsLm9wZW5Db25u
ZWN0aW9uKCk7PGJyPiZuYnNwOyZuYnNwOyZuYnNwO2Nvbi5zZXREb0lucHV0KHRydWUpOzxicj4m
bmJzcDsmbmJzcDsmbmJzcDtjb24uc2V0RG9PdXRwdXQodHJ1ZSk7PC9kaXY+DQo8ZGl2PiZuYnNw
OyZuYnNwOyZuYnNwO0J1ZmZlcmVkUmVhZGVyIHJlYWRlciA9IG5ldyBCdWZmZXJlZFJlYWRlcihu
ZXcgSW5wdXRTdHJlYW1SZWFkZXIoPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Nv
bi5nZXRJbnB1dFN0cmVhbSgpKSk7PGJyPiZuYnNwOyZuYnNwOyZuYnNwO1N5c3RlbS5vdXQucHJp
bnRsbihyZWFkZXIucmVhZExpbmUoKSk7PC9kaXY+DQo8ZGl2PiZuYnNwOyZuYnNwO30gY2F0Y2gg
KE1hbGZvcm1lZFVSTEV4Y2VwdGlvbiBlKSB7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOy8vIFRPRE8g
QXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2s8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7ZS5wcmludFN0
YWNrVHJhY2UoKTs8YnI+Jm5ic3A7Jm5ic3A7fSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgezxicj4m
bmJzcDsmbmJzcDsmbmJzcDsvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrPGJyPiZu
YnNwOyZuYnNwOyZuYnNwO2UucHJpbnRTdGFja1RyYWNlKCk7PGJyPiZuYnNwOyZuYnNwO308YnI+
Jm5ic3A7fTxicj59PC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGRpdj55b3UgY2FuIGdldCZu
YnNwO21vcmUgaW5mb3JtYXRpb24gYXQgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9qMnNl
LzEuNC4yL2RvY3MvYXBpL2phdmEvbmV0L1VSTENvbm5lY3Rpb24uaHRtbCI+aHR0cDovL2phdmEu
c3VuLmNvbS9qMnNlLzEuNC4yL2RvY3MvYXBpL2phdmEvbmV0L1VSTENvbm5lY3Rpb24uaHRtbDwv
YT4uPC9kaXY+DQo8ZGl2Pjxicj5Zb3VycyBzaW5jZXJlbHksPC9kaXY+DQo8ZGl2PlFpSnVuIFlh
bmc8L2Rpdj4NCjxkaXY+PC9kaXY+PGJyPuWcqDIwMDgtMTItMDTvvIwiU2ltb24gQXF1aWxpbmEi
ICZsdDtzaW0wODVASE9UTUFJTC5DT00mZ3Q7IOWGmemBk++8mjxicj4NCjxibG9ja3F1b3RlIGlk
PSJFQ19pc1JlcGx5Q29udGVudCIgc3R5bGU9ImJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIw
NCwgMjA0LCAyMDQpOyBwYWRkaW5nLWxlZnQ6IDFleDsiPkhpIGFnYWluLDxicj48YnI+U2luY2Ug
SSBkaWQgbm90IHJlY2VpdmUgYW55IHJlcGx5IEkgdGhvdWdodCB0byBzZW5kIGFub3RoZXIgZW1h
aWwgd2l0aCB0aGUgYWRkaXRpb25hbCByZS1zZWFyY2ggSSBkaWQuIEJhc2ljYWxseSBmcm9tIHRo
ZSBkaWFncmFtIG9uIHNsaWRlIGZpdmUgKDUpIG9mIHRoZSBwcmVzZW50YXRpb24gJ0phdmHihKIg
RUUgQ29ubmVjdG9ycyBEZW15c3RpZmllZCcgYnkgQmlub2QgUC5HLCBHZW9yZ2UgVGhhcmFrYW4s
IFNpdmFrdW1hciBUaHlhZ2FyYWphbiBpdCBpcyBjbGVhciB0aGF0IGEgY3VzdG9tIGNvbm5lY3Rv
ciBzaG91bGQgYmUgYWJsZSB0byBpbnZva2UgYSBkZXBsb3llZCBzZXJ2bGV0Ljxicj48YnI+SGF2
aW5nIHNhaWQgdGhhdCBJIHN0aWxsIGNhbm5vdCB1bmRlcnN0YW5kIGhvdyB0aGlzIGNhbiBiZSBk
b25lLiBJbiB0aGUgZG9jdW1lbnQgJ0oyRUXihKIgQ29ubmVjdG9yIEFyY2hpdGVjdHVyZSBTcGVj
aWZpY2F0aW9uJyB0aGVyZSBpcyBhIHdob2xlIGNoYXB0ZXIgb24gaG93IHRvIGludm9rZSBhbiBF
SkIgKENoYXB0ZXIgMTMpIGhvd2V2ZXIgSSBjYW5ub3QgZmluZCBhbnl0aGluZyBhYm91dCBTZXJ2
bGV0IEludm9rYXRpb24uIEkgYWxzbyBkb3dubG9hZGVkIHRoZSBTZXJ2bGV0IFNwZWNpZmljYXRp
b24gZG9jdW1lbnQgYnV0IGNhbm5vdCByZWFsbHkgbWFwIHRoZSB0d28gdG9nZXRoZXIgKHByb2Jh
YmJseSBkdWUgdG8gbXkgbGl0dGxlIGtub3dsZWRnZSBhYm91dCB0aGUgc3ViamVjdCkuIEkgaGF2
ZSBhbHNvIGNoZWNrZWQgaG93IHRoZSBIdHRwIENvbm5lY3RvciBvZiBUb21jYXQgd29ya3MgYW5k
IGhlcmUgSSBmb3VuZCBvdXQgdGhhdCB0aGUgVG9tY2F0IHdoZW4gbG9hZGVkIHRoZSBIdHRwIENv
bm5lY3RvciB3aWxsIHByb3ZpZGUgYW4gQWRhcHRlciBpbiBvcmRlciB0byBpbnZva2UgU2Vydmxl
dHMgaG93ZXZlciBkbyBub3Qga25vdyBpZiB0aGlzIGlzIGFsc28gdGhlIGNhc2UgZm9yIGEgSkVF
IEFwcGxpY2F0aW9uIFNlcnZlciwgbm9yIGRvIEkga25vdyBpZiBJIGhhdmUgdG8gc2V0IHNvbWUg
ZXh0cmEgY29uZmlndXJhdGlvbiB0byBoYXZlIHN1Y2ggYW4gb2JqZWN0IGF2YWlsYWJsZS48YnI+
PGJyPlRoYW5rcyBhbmQgUmVnYXJkcyw8YnI+U2ltb24gSi4gQXF1aWxpbmE8YnI+PGJyPg0KPGhy
IGlkPSJFQ19zdG9wU3BlbGxpbmciPg0KRnJvbTogPGEgaHJlZj0ibWFpbHRvOnNpbTA4NUBob3Rt
YWlsLmNvbSI+c2ltMDg1QGhvdG1haWwuY29tPC9hPjxicj5UbzogPGEgaHJlZj0ibWFpbHRvOmNv
bm5lY3Rvci1pbnRlcmVzdEBqYXZhLnN1bi5jb20iPmNvbm5lY3Rvci1pbnRlcmVzdEBqYXZhLnN1
bi5jb208L2E+PGJyPlN1YmplY3Q6IElzIGl0IHBvc3NpYmxlIGZvciBhbiBpbmJvdW5kIGNvbm5l
Y3RvciB0byBpbnZva2Ugc2VydmxldD88YnI+RGF0ZTogTW9uLCAxIERlYyAyMDA4IDIxOjAwOjEw
ICswMTAwPGJyPjxicj4NCjxzdHlsZT4NCi5FeHRlcm5hbENsYXNzIC5FQ19obW1lc3NhZ2UgUA0K
e3BhZGRpbmc6MHB4O30NCi5FeHRlcm5hbENsYXNzIGJvZHkuRUNfaG1tZXNzYWdlDQp7Zm9udC1z
aXplOjEwcHQ7Zm9udC1mYW1pbHk6VmVyZGFuYTt9DQo8L3N0eWxlPg0KDQo8c3R5bGU+DQpAcGFn
ZQ0Kezt9DQouRXh0ZXJuYWxDbGFzcyBQDQp7bWFyZ2luLWJvdHRvbTowLjIxY207bGluZS1oZWln
aHQ6MTUwJTt0ZXh0LWFsaWduOmp1c3RpZnk7fQ0KLkV4dGVybmFsQ2xhc3MgUC5FQ193ZXN0ZXJu
DQp7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywgc2Fucy1zZXJpZjt9DQo8L3N0eWxl
Pg0KDQo8cCBjbGFzcz0iRUNfRUNfd2VzdGVybiIgYWxpZ249ImxlZnQiPkhpLDxicj48YnI+SSBh
bSBub3Qgc3VyZSBpZiB0aGlzIGlzIHRoZSByaWdodCBwbGFjZSB0byBhc2sgdGhpcyBxdWVzdGlv
bi4gTXkgcXVlc3Rpb24gaXMgcmVsYXRlZCB0byBpbmJvdW5kIGNvbm5lY3RvcnMuIEZyb20gd2hh
dCBJIGNhbiB1bmRlcnN0YW5kIGFuIGFwcGxpY2F0aW9uIHNlcnZlciB3aWxsIHN0YXJ0IGEgUmVz
b3VyY2UgQWRhcHRlciAoUkEpLiBUaGVuIHdoZW4gYSBNZXNzYWdlIERyaXZlbiBCZWFuIChNREIp
IGlzIGRlcGxveWVkIHRoZSByZWxhdGVkIFJBIGFyZSBpbmZvcm1lZC4gVGhlIFJBIHdvdWxkIHRo
ZW4gY3JlYXRlIGFuIEVuZHBvaW50IENvbnN1bWVyLiBXaGVuIGEgbWVzc2FnZSBpcyByZWNlaXZl
ZCBmcm9tIGFuIEVJUyB0aGUgRW5kcG9pbnQgQ29uc3VtZXIgd2lsbCBjYWxsIGEgbWV0aG9kIGZy
b20gdGhlIE1EQi4gPGJyPjxicj5Ob3cgbXkgcGxhbiB3YXMgdG8gZGV2ZWxvcCBzb21ldGhpbmcg
c2ltaWxhciB0byB0aGUgaHR0cCBwcm90b2NvbC4gVGhlIEVudGVycHJpc2UgSW5mb3JtYXRpb24g
U3lzdGVtIChFSVMpIG1ha2VzIGEgcmVxdWVzdCwgdGhlIHJlcXVlc3QgaXMgcHJvY2Vzc2VkLCBh
bmQgYSByZXNwb25zZSBpcyByZXR1cm5lZCBpbiBYTUwgKG9yIGZvcm1hdCB1bmRlcnN0b29kIGJ5
IHRoZSBFSVMpLiBCZWNhdXNlIG9mIHRoaXMgc2ltaWxhcml0eSBJIHdhcyB3b25kZXJpbmc7IElz
IGl0IHBvc3NpYmxlIHRoYXQgYW4gaW5ib3VuZCBjb25uZWN0b3IgaW52b2tlcyBhIGRlcGxveWVk
IHNlcnZsZXQ/IDxicj48YnI+VGhhbmtzIGFuZCBSZWdhcmRzLDxicj5TaW1vbiBKLjxicj48YnI+
PC9wPjxicj48YnI+PGJyPjxicj4NCjxocj4NCkludml0ZSB5b3VyIG1haWwgY29udGFjdHMgdG8g
am9pbiB5b3VyIGZyaWVuZHMgbGlzdCB3aXRoIFdpbmRvd3MgTGl2ZSBTcGFjZXMuIEl0J3MgZWFz
eSEgPGEgaHJlZj0iaHR0cDovL3NwYWNlcy5saXZlLmNvbS9zcGFjZXNhcGkuYXNweD93eF9hY3Rp
b249Y3JlYXRlJmFtcDt3eF91cmw9L2ZyaWVuZHMuYXNweCZhbXA7bWt0PWVuLXVzIj5UcnkgaXQh
PC9hPjxicj4NCjxocj4NCkRpc2NvdmVyIHRoZSBuZXcgV2luZG93cyBWaXN0YSA8YSBocmVmPSJo
dHRwOi8vc2VhcmNoLm1zbi5jb20vcmVzdWx0cy5hc3B4P3E9d2luZG93cyt2aXN0YSZhbXA7bWt0
PWVuLVVTJmFtcDtmb3JtPVFCUkUiPkxlYXJuIG1vcmUhPC9hPiA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
VG8gdW5zdWJzY3JpYmUsIHNlbmQgZW1haWwgdG8gPGEgaHJlZj0ibWFpbHRvOmxpc3RzZXJ2QGph
dmEuc3VuLmNvbSI+bGlzdHNlcnZAamF2YS5zdW4uY29tPC9hPiBhbmQgaW5jbHVkZSBpbiB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZSAic2lnbm9mZiBDT05ORUNUT1ItSU5URVJFU1QiLiBGb3IgZ2Vu
ZXJhbCBoZWxwLCBzZW5kIGVtYWlsIHRvIDxhIGhyZWY9Im1haWx0bzpsaXN0c2VydkBqYXZhLnN1
bi5jb20iPmxpc3RzZXJ2QGphdmEuc3VuLmNvbTwvYT4gYW5kIGluY2x1ZGUgaW4gdGhlIGJvZHkg
b2YgdGhlIG1lc3NhZ2UgImhlbHAiLiA8L2Jsb2NrcXVvdGU+PGJyPjxicj48aHI+DQo8YSBocmVm
PSJodHRwOi8vd3d3LnllYWgubmV0Ij7nvZHmmJPlhY3otLnpgq7vvIzlhajnkIPmnIDlpKfnmoTk
uK3mloflhY3otLnpgq7nrrE8L2E+DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClRvIHVuc3Vic2NyaWJl
LCBzZW5kIGVtYWlsIHRvIGxpc3RzZXJ2QGphdmEuc3VuLmNvbSBhbmQgaW5jbHVkZSBpbiB0aGUg
Ym9keQ0Kb2YgdGhlIG1lc3NhZ2UgInNpZ25vZmYgQ09OTkVDVE9SLUlOVEVSRVNUIi4gIEZvciBn
ZW5lcmFsIGhlbHAsIHNlbmQgZW1haWwgdG8NCmxpc3RzZXJ2QGphdmEuc3VuLmNvbSBhbmQgaW5j
bHVkZSBpbiB0aGUgYm9keSBvZiB0aGUgbWVzc2FnZSAiaGVscCIuPGJyIC8+PGhyIC8+SW52aXRl
IHlvdXIgbWFpbCBjb250YWN0cyB0byBqb2luIHlvdXIgZnJpZW5kcyBsaXN0IHdpdGggV2luZG93
cyBMaXZlIFNwYWNlcy4gSXQncyBlYXN5ISA8YSBocmVmPSdodHRwOi8vc3BhY2VzLmxpdmUuY29t
L3NwYWNlc2FwaS5hc3B4P3d4X2FjdGlvbj1jcmVhdGUmd3hfdXJsPS9mcmllbmRzLmFzcHgmbWt0
PWVuLXVzJyB0YXJnZXQ9J19uZXcnPlRyeSBpdCE8L2E+PC9ib2R5Pg0KPC9odG1sPg==

--_79af1183-96c1-4470-a2f9-bc854aaed3c6_--