cnNtaXRoIGFkZGVkIGlubGluZSBjb21tZW50cy4KCj09PT09PT09PT09PT09PT0KQ29tbWVudCBh dDogbGliL1NlbWEvU2VtYURlY2wuY3BwOjc0NDctNzQ1MApAQCAtNzQ0NiwxICs3NDQ2LDYgQEAK IAorICAgICAgaWYgKGNvbnN0IEZ1bmN0aW9uUHJvdG9UeXBlICpGUFQgPSBSLT5nZXRBczxGdW5j dGlvblByb3RvVHlwZT4oKSkgeworICAgICAgICBpZiAoRlBULT5oYXNFeGNlcHRpb25TcGVjKCkp IHsKKyAgICAgICAgICBhdXRvIExvY0JlZyA9IEQuZ2V0RnVuY3Rpb25UeXBlSW5mbygpLmdldEV4 Y2VwdGlvblNwZWNMb2NCZWcoKTsKKyAgICAgICAgICBhdXRvIExvY0VuZCA9IEQuZ2V0RnVuY3Rp b25UeXBlSW5mbygpLmdldEV4Y2VwdGlvblNwZWNMb2NFbmQoKTsKKyAgICAgICAgICBEaWFnKExv Y0JlZywgZGlhZzo6ZXJyX2Z1bmN0aW9uX2NvbmNlcHRfZXhjZXB0aW9uX3NwZWMpCi0tLS0tLS0t LS0tLS0tLS0KbndpbHNvbiB3cm90ZToKPiByc21pdGggd3JvdGU6Cj4gPiBUaGlzIHdpbGwgYXNz ZXJ0IGlmIHRoZXJlIGlzbid0IGEgYEZ1bmN0aW9uVHlwZUluZm9gIGZvciB0aGUgZGVjbGFyYXRp b24sIHdoaWNoIGNhbiB0aGVvcmV0aWNhbGx5IGhhcHBlbiBpZiBpdCdzIGRlY2xhcmVkIHZpYSBh biAoaWxsLWZvcm1lZCB0b2RheSkgYHR5cGVkZWZgLiAoSXQgYWxzbyBtaWdodCBub3QgcHJvdmlk ZSBhIHNvdXJjZSByYW5nZSBpZiB0aGUgZXhjZXB0aW9uIHNwZWNpZmljYXRpb24gaXMgaW1wbGlj aXQsIGZvciBpbnN0YW5jZSBiZWNhdXNlIHRoZSBmdW5jdGlvbiB0ZW1wbGF0ZSBpcyBhIGRlc3Ry dWN0b3Igb3IgZGVhbGxvY2F0aW9uIGZ1bmN0aW9uLCBidXQgcGFzc2luZyBhbiBlbXB0eSBTb3Vy Y2VSYW5nZSB0byB0aGUgRml4SXRIaW50IHNob3VsZCBqdXN0IHJlc3VsdCBpdCBpbiBiZWluZyBp Z25vcmVkLikKPiBIbW0sIEknbSBub3Qgc3VyZSBpZiB3ZSdkIHJ1biBpbnRvIHRoYXQgY2FzZSBi ZWNhdXNlIEkgZG9uJ3QgYmVsaWV2ZSB3ZSBjYW4gaGF2ZSBhIGBjb25jZXB0YCBzcGVjaWZpZWQg YXMgYSB0eXBlZGVmIChjaGVjayBpcyB5ZXQgdG8gYmUgYWRkZWQpIGFuZCBhIGNoZWNrIGV4aXN0 cyBmb3IgYmVpbmcgaW4gYSBub24tbmFtZXNwYWNlIHNjb3BlLiBEbyB5b3UgdGhpbmsgYSBjaGVj ayBzaG91bGQgc3RpbGwgYmUgYWRkZWQgdmVyaWZ5aW5nIHRoYXQgdGhlIEZ1bmN0aW9uVHlwZUlu Zm8gZXhpc3RzPwpZZXMsIHlvdSBzaG91bGQgY2hlY2sgdGhhdCBhIGBGdW5jdGlvblR5cGVJbmZv YCBleGlzdHMgKGBpc0Z1bmN0aW9uRGVjbGFyYXRvcmApIHJhdGhlciB0aGFuIGFzc3VtaW5nIHRo YXQgaXQgZG9lcy4gVGhlIHRlc3RjYXNlIHdvdWxkIGxvb2sgc29tZXRoaW5nIGxpa2UgdGhpczoK CiAgICB0eXBlZGVmIGludCBGbigpIG5vZXhjZXB0OwogICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g Y29uY2VwdCBGbiBDOwoKSSB0aGluayB3ZSdsbCBkaXNjYXJkIHRoZSBgbm9leGNlcHRgIGVhcmx5 IGF0IHRoZSBtb21lbnQsIGJ1dCB0aGF0J3Mgbm90IHNvbWV0aGluZyB5b3Ugc2hvdWxkIGJlIHN1 YnRseSByZWx5aW5nIG9uIGhlcmUgKGVzcGVjaWFsbHkgZ2l2ZW4gdGhhdCBodHRwOi8vd3d3Lm9w ZW4tc3RkLm9yZy9qdGMxL3NjMjIvd2cyMS9kb2NzL3BhcGVycy8yMDE1L240NTMzLmh0bWwgaXMg bG9vbWluZyBvbiB0aGUgaG9yaXpvbikuIFNvbWV0aGluZyBsaWtlOgoKICBTb3VyY2VSYW5nZSBS YW5nZTsKICBpZiAoRC5pc0Z1bmN0aW9uRGVjbGFyYXRvcigpKQogICAgUmFuZ2UgPSBELmdldEZ1 bmN0aW9uVHlwZUluZm8oKS5nZXRFeGNlcHRpb25TcGVjUmFuZ2UoKTsKCi4uLiBzaG91bGQgaGFu ZGxlIHRoaXMgc2FmZWx5LgoKCmh0dHA6Ly9yZXZpZXdzLmxsdm0ub3JnL0QxMTc4OQoKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpjZmUtY29tbWl0cyBt YWlsaW5nIGxpc3QKY2ZlLWNvbW1pdHNAbGlzdHMubGx2bS5vcmcKaHR0cDovL2xpc3RzLmxsdm0u b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9jZmUtY29tbWl0cwo=