Ly8gQ29weXJpZ2h0IDIwMjIgVGhlIENocm9taXVtIEF1dGhvcnMKLy8gVXNlIG9mIHRoaXMgc291cmNlIGN
vZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQovLyBmb3VuZCBpbi
B0aGUgTElDRU5TRSBmaWxlLgoKI2luY2x1ZGUgImNvbnRlbnQvcHVibGljL2Jyb3dzZXIvYWN0aXZlX3Vyb
F9tZXNzYWdlX2ZpbHRlci5oIgoKI2luY2x1ZGUgImNvbnRlbnQvcHVibGljL2Jyb3dzZXIvcmVuZGVyX2Zy
YW1lX2hvc3QuaCIKI2luY2x1ZGUgImNvbnRlbnQvcHVibGljL2NvbW1vbi9jb250ZW50X2NsaWVudC5oIgo
jaW5jbHVkZSAidXJsL2d1cmwuaCIKI2luY2x1ZGUgInVybC9vcmlnaW4uaCIKCm5hbWVzcGFjZSBjb250ZW
50IHsKbmFtZXNwYWNlIGludGVybmFsIHsKCkFjdGl2ZVVybE1lc3NhZ2VGaWx0ZXI6OkFjdGl2ZVVybE1lc
3NhZ2VGaWx0ZXIoCiAgICBSZW5kZXJGcmFtZUhvc3QqIHJlbmRlcl9mcmFtZV9ob3N0KQogICAgOiByZW5k
ZXJfZnJhbWVfaG9zdF8ocmVuZGVyX2ZyYW1lX2hvc3QpIHt9CgpBY3RpdmVVcmxNZXNzYWdlRmlsdGVyOjp
+QWN0aXZlVXJsTWVzc2FnZUZpbHRlcigpIHsKICBpZiAoZGVidWdfdXJsX3NldF8pIHsKICAgIEdldENvbn
RlbnRDbGllbnQoKS0+U2V0QWN0aXZlVVJMKEdVUkwoKSwgIiIpOwogIH0KfQoKYm9vbCBBY3RpdmVVcmxNZ
XNzYWdlRmlsdGVyOjpXaWxsRGlzcGF0Y2gobW9qbzo6TWVzc2FnZSogbWVzc2FnZSkgewogIGRlYnVnX3Vy
bF9zZXRfID0gdHJ1ZTsKICBHZXRDb250ZW50Q2xpZW50KCktPlNldEFjdGl2ZVVSTChyZW5kZXJfZnJhbWV
faG9zdF8tPkdldExhc3RDb21taXR0ZWRVUkwoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC
AgICByZW5kZXJfZnJhbWVfaG9zdF8tPkdldE91dGVybW9zdE1haW5GcmFtZSgpCiAgICAgICAgICAgICAgI
CAgICAgICAgICAgICAgICAgICAgICAgIC0+R2V0TGFzdENvbW1pdHRlZE9yaWdpbigpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5HZXREZWJ1Z1N0cmluZygpKTsKICByZXR1cm4gdHJ1ZTs
KfQoKdm9pZCBBY3RpdmVVcmxNZXNzYWdlRmlsdGVyOjpEaWREaXNwYXRjaE9yUmVqZWN0KG1vam86Ok1lc3
NhZ2UqIG1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
CBib29sIGFjY2VwdGVkKSB7CiAgR2V0Q29udGVudENsaWVudCgpLT5TZXRBY3RpdmVVUkwoR1VSTCgpLCAi
Iik7CiAgZGVidWdfdXJsX3NldF8gPSBmYWxzZTsKfQoKfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCn0gIC8
vIG5hbWVzcGFjZSBjb250ZW50Cg==