UF9NVVJERVJfTVNHCgpOQU1FOgogICAgIFBfTVVSREVSX01TRwkJCSJtdXJkZXJfbXNnIgoKREVGSU5JRVJUIElOOgogICAgIC9zeXMvcHJvcGVydGllcy5oCgpCRVNDSFJFSUJVTkc6CiAgICAgSW4gZGllc2VyIFByb3BlcnR5IGthbm4gbWFuIGVpbmVuIFN0cmluZyBvZGVyIGVpbmUgQ2xvc3VyZSBhYmxlZ2VuCiAgICAgZGVzc2VuIFdlcnQgYnp3LiBkZXJlbiBSZXN1bHRhdCBiZWltIFRvZCBkZXMgTlBDcyBhdWYgZGVtCiAgICAgTW9lcmRlci1LYW5hbCBlcnNjaGVpbnQuCiAgICAgTm9ybWFsZXJ3ZWlzZSBpc3QgZGllIFByb3BlcnR5IG5pY2h0IGdlc2V0enQsIHdvcmF1ZmhpbiB6dWZhZWxsaWcKICAgICBlaW5lIE1lbGR1bmcgZ2VuZXJpZXJ0IHdpcmQuCgogICAgIE9iIGRlciBUb2QgZWluZXMgTlBDcyBhdWYgZGVtIE1vZXJkZXItS2FuYWwgZXJzY2hlaW50LCBoYWVuZ3QgZGF2b24gYWIsCiAgICAgd2llIG9mdCB1bmQgd2VsY2hlIEFydCB2b24gTlBDcyBpbiBkZXIgbGV0enRlbiBaZWl0IGdldG9ldGV0IHd1cmRlbi4gWnVtCiAgICAgQmVpc3BpZWwgaXN0IGVzIGVoZXIgc2VsdGVuLCBkYXNzIGVpbiBzY2h3YWNoZXIgTlBDIGF1ZiBkZW0gS2FuYWwKICAgICBlcnNjaGVpbnQsIHdlbm4ga3VlcnpsaWNoIHZpZWxlIHN0YXJrZSBOUENzIGdldG9ldGV0IHd1cmRlbi4gQWxsZXJkaW5ncwogICAgIGthbm4gbWFuIGF1ZiBkaWVzZSBSZWdlbHVuZyBtaXR0ZWxzIGRlciBQcm9wZXJ0eSBQX0ZPUkNFX01VUkRFUl9NU0cKICAgICBFaW5mbHVzcyBuZWhtZW4uCgogICAgIFdpcmQgaW4gZWluZW4gU3RyaW5nIGRlciBQbGF0emhhbHRlciAlcyBlaW5nZWZ1ZWd0LCBzbyBlcnNjaGVpbnQgYW4gZGVyCiAgICAgU3RlbGxlIHNwYWV0ZXIgZGVyIE5hbWUgZGVzIE1vZXJkZXJzLgoKQkVJU1BJRUxFOgogICAgIC8vIFp1bSBCZWlzcGllbCBrb2VubnRlIG1hbiBqYSBiZWkgZWluZXIgUmF0dGUsIGRpZSBnZXRvZXRldCB3aXJkLAogICAgIC8vIGZvbGdlbmRlcyBhdWYgZGVtIE1vZXJkZXItS2FuYWwgYXVzZ2ViZW4gbGFzc2VuOgogICAgIFNldFByb3AoUF9NVVJERVJfTVNHLAogICAgICAgIlJhdHRlbiBhbGxlciBNVURzLCB2ZXJlaW5pZ3QgZXVjaCBnZWdlbiAlcyEiKTsKCgogICAgIC8vIFVtIGF1Y2ggbWFsIGVpbmUgQ2xvc3VyZSB6dSB6ZWlnZW46IGRpZSBSYXR0ZSBr9m5udGUgYXVjaCBpaHJlCiAgICAgLy8gTWVsZHVuZyBlcnN0IGJlaSBpaHJlbSBUb2QgZXJzdGVsbGVuIGxhc3NlbjoKICAgICBwcml2YXRlIHN0cmluZyBtb2VyZGVyX21lbGR1bmcoKSB7CiAgICAgICByZXR1cm4gKHsiQWNod2VoISIsICJBdSEiLCAiV2VpYSEifSlbcmFuZG9tKDMpXTsKICAgICB9CgogICAgIFNldFByb3AoUF9NVVJERVJfTVNHLCAjJ21vZXJkZXJfbWVsZHVuZyk7CgpCRU1FUktVTkdFTjoKICAgICAtIFBfTk9DT1JQU0U6CiAgICAgICBJc3QgaW4gZGVtIE5wYyBkaWUgUHJvcGVydHkgUF9OT0NPUlBTRSBnZXNldHp0LCBzbyB3aXJkIGRpZQogICAgICAgTW9lcmRlcm1lbGR1bmcgbmljaHQgYXVmIGRlbSBLYW5hbCBnZXNlbmRldCwgZGEgZGllc2UgQXVzZ2FiZSB1ZWJlcgogICAgICAgL3N0ZC9jb3Jwc2UgbGFldWZ0LgogICAgICAgV2lsbCBtYW4gZGVubm9jaCBlaW5lIE1lbGR1bmcsIHNvIHNvbGx0ZSBtYW4gL3N0ZC9jb3Jwc2UgaW0gZGllKCkKICAgICAgIHNlbGJzdCBjbG9uZW4sIGRhcmFuIElkZW50aWZ5KHRoaXNfb2JqZWN0KCkpIHJ1ZmVuIHVuZCBkYXMgZ2VjbG9udGUKICAgICAgIE9iamVrdCB3aWVkZXIgZW50c29yZ2VuLgoKICAgICAtIENsb3N1cmVzOgogICAgICAgQ2xvc3VyZXMgYmlldGVuIHNpY2ggYW4sIHdlbm4gZWluIHplbnRyYWxlcyBPYmpla3QgZvxyIG1laHJlcmUgTlBDcwogICAgICAgYmVzdGltbXRlIE1vZXJkZXJtZWxkdW5nZW4gZ2VuZXJpZXJlbiBzb2xsLiBEYW5uIG11c3MgbnVyIG5vY2ggYmVpCiAgICAgICBkZW4gTlBDcyBkaWUgQ2xvc3VyZSwgZGllIGF1ZiBkaWUgZXJzdGVsbGVuZGUgTWV0aG9kZSB6ZWlndCBnZXNldHp0CiAgICAgICB3ZXJkZW4uCgpTSUVIRSBBVUNIOgogICAgIFRvZDoJCWRpZShMKQogICAgIFZlcndhbmR0OgkJUF9GT1JDRV9NVVJERVJfTVNHCiAgICAgVG9kZXNtZWxkdW5nZW46CVBfS0lMTF9OQU1FLCBQX0tJTExfTVNHLCBQX0RJRV9NU0cKCQkJUF9aQVBfTVNHLCBQX0VORU1ZX0RFQVRIX1NFUVVFTkNFCiAgICAgU29uc3RpZ2VzOgkJUF9DT1JQU0UsIFBfTk9DT1JQU0UsIC9zdGQvY29ycHNlLmMKCjMwLiBNYWkgMjAwNiwgR2xvaW5zb24=