Q3VybCBhbmQgbGliY3VybCA3LjEzLjAKCiBQdWJsaWMgY3VybCByZWxlYXNlIG51bWJlcjogICAgICAgICAgICAgICA4NQogUmVsZWFzZXMgY291bnRlZCBmcm9tIHRoZSB2ZXJ5IGJlZ2lubmluZzogMTEyCiBBdmFpbGFibGUgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICAgICAgICAgICAxMDQKIEF2YWlsYWJsZSBjdXJsX2Vhc3lfc2V0b3B0KCkgb3B0aW9uczogICAgIDEyMgogTnVtYmVyIG9mIHB1YmxpYyBmdW5jdGlvbnMgaW4gbGliY3VybDogICAgNDYKIEFtb3VudCBvZiBwdWJsaWMgd2ViIHNpdGUgbWlycm9yczogICAgICAgIDE1CiBOdW1iZXIgb2Yga25vd24gbGliY3VybCBiaW5kaW5nczogICAgICAgICAyOQoKVGhpcyByZWxlYXNlIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKCiBvIGFkZGVkIC0tZnRwLWFjY291bnQgYW5kIENVUkxPUFRfRlRQX0FDQ09VTlQKIG8gYWRkZWQgQ1VSTE9QVF9TT1VSQ0VfVVJMIGFuZCBDVVJMT1BUX1NPVVJDRV9RVU9URQogbyBvYnNvbGV0ZWQgQ1VSTE9QVF9TT1VSQ0VfSE9TVCwgQ1VSTE9QVF9TT1VSQ0VfUEFUSCwgQ1VSTE9QVF9TT1VSQ0VfUE9SVAogICBhbmQgQ1VSTE9QVF9QQVNWX0hPU1QKIG8gYWRkZWQgLS0zcC11cmwsIC0tM3AtdXNlciBhbmQgLS0zcC1xdW90ZQogbyAtUSAiK1tjb21tYW5kXSIgd2FzIGFkZGVkCiBvIHNyYy9nZXRwYXNzLmMgbGljZW5zZSBpc3N1ZSBzb3J0ZWQgKGNvZGUgd2FzIHJld3JpdHRlbikKIG8gY3VybCAtdyBub3cgc3VwcG9ydHMgJ2h0dHBfY29ubmVjdCcgZm9yIHRoZSBwcm94eSdzIHJlc3BvbnNlIHRvIENPTk5FQ1QKIG8gaW50cm9kdWNpbmcgImN1cmwtY29uZmlnIC0tcHJvdG9jb2xzIgoKVGhpcyByZWxlYXNlIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgYnVnZml4ZXM6CgogbyByZS1zZW5kaW5nIGEgcmVxdWVzdCB3aGVuIHJldHJ5aW5nIG9uIGEgZnJlc2ggY29ubmVjdGlvbiB3aXRoIG11bHRpCiAgIGludGVyZmFjZQogbyBpbXByb3ZlZCB2YWxncmluZCByZXBvcnQgcGFyc2VyIGluIHRoZSB0ZXN0IHN1aXRlCiBvIHNldmVyYWwgdmFsZ3JpbmQgcmVwb3J0cwogbyBDVVJMT1BUX0ZUUFBPUlQgYW5kIC1QIHdvcmsgd2hlbiBidWlsdCBpcHY2LWVuYWJsZWQKIG8gRlRQIHRoaXJkIHBhcnR5IHRyYW5zZmVycyB3YXMgbXVjaCBpbXByb3ZlZAogbyBwcm94eSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIG5vdyBpZ25vcmVkIHdoZW4gYnVpbHQgSFRUUC1kaXNhYmxlZAogbyBDVVJMT1BUX1BST1hZIGNhbiBub3cgZGlzYWJsZSBIVFRQIHByb3h5IGV2ZW4gd2hlbiBidWlsdCBIVFRQLWRpc2FibGVkCiBvICJjdXJsIGRpY3Rpb25hcnkuY29tIiBubyBsb25nZXIgYXNzdW1lcyBESUNUIHByb3RvY29sCiBvIHJlLWludm9rZSBzb21lIHN5c3RlbSBjYWxscyBvbiBFSU5UUgogbyBkdXBsaWNhdGUgSG9zdDogd2hlbiBmYWlsZWQgY29ubmVjdGlvbiByZS11c2UKIG8gU09DS1M1IHZlcnNpb24gY2hlY2sKIG8gbWVtb3J5IHByb2JsZW0gd2l0aCBjbGVhbmluZyB1cCBtdWx0aSBpbnRlcmZhY2UKIG8gU1NMIGNlcnRpZmljYXRlIG5hbWUgbWVtb3J5IGxlYWsKIG8gLWQgd2l0aCAtRyB0byBtdWx0aXBsZSBVUkxzIGNyYXNoZWQKIG8gZG91YmxlIHZhX2xpc3QgYWNjZXNzIGNyYXNoIGZpeGVkCiBvIG1pbm9yIG1lbW9yeSBsZWFrIHdoZW4gInZlcnNpb24iIGlzIHNldCBpbiBhIGNvb2tpZSBoZWFkZXIKIG8gYnVpbGRzIGZpbmUgb24gQmVPUyBhbmQgTmV0QlNECiBvIGJ1aWxkcyBhbmQgcnVucyBmaW5lIG9uIEZyZWVCU0QKCk90aGVyIGN1cmwtcmVsYXRlZCBuZXdzIHNpbmNlIHRoZSBwcmV2aW91cyBwdWJsaWMgcmVsZWFzZToKCiBvIGNVUkxwcCAwLjMuMiAtIGh0dHBzOi8vcnJldHRlLmNvbS9jdXJscHAuaHRtbAogbyBweWNVUkwgNy4xMi4zIC0gaHR0cDovL3B5Y3VybC5zb3VyY2Vmb3JnZS5uZXQvCiBvIG5ldyB3ZWIgbWlycm9yOiBodHRwOi8vY3VybC5taXJyb3Jtb25zdGVyLmNvbS8gKFVTLCBDYWxpZm9ybmlhKQoKVGhpcyByZWxlYXNlIHdvdWxkIG5vdCBoYXZlIGxvb2tlZCBsaWtlIHRoaXMgd2l0aG91dCBoZWxwLCBjb2RlLCByZXBvcnRzIGFuZAphZHZpY2UgZnJvbSBmcmllbmRzIGxpa2UgdGhlc2U6CgogRGFuIEZhbmRyaWNoLCBQZXRlciBQZW50Y2hldiwgTWFyY2luIEtvbmlja2ksIFJ1bmUgS2xldmVsYW5kLCBEYXZpZCBTaGF3LAogV2VybmVyIEtvY2gsIEdpc2xlIFZhbmVtLCBBbGV4IE5lYmxldHQsIEthaSBTb21tZXJmZWxkLCBNYXJ0eSBLdWhydCwKIEh6aGlqdW4sIFBhdmVsIE9yZWhvdiwgQnJ1Y2UgTWl0Y2hlbmVyLCBDeXJpbGwgT3N0ZXJ3YWxkZXIsIERhbiBUb3JvcCwKIE1hcnRpam4gS29zdGVyLCBBbGV4IGFrYSBXaW5kRWFnbGUsIENvZHkgSm9uZXMsIFNhbXVlbCBE7WF6IEdhcmPtYSwKIFN0ZXBoYW4gQmVyZ21hbm4sIFBoaWxpcHBlIEhhbWVhdSwgSWFuIEZvcmQsIFN0ZXBoZW4gTW9yZSwgTGFycyBOaWxzc29uCgogICAgICAgIFRoYW5rcyEgKGFuZCBzb3JyeSBpZiBJIGZvcmdvdCB0byBtZW50aW9uIHNvbWVvbmUpCg==