IyBUcmFuc2xhdGlvbiBvZiBSLXN0YXRzNC5wb3QgdG8gRnJlbmNoCiMgQ29weXJpZ2h0IChDKSAyMDA1IFRoZSBSIEZvdW5kYXRpb24KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgc3RhdHM0IFIgcGFja2FnZS4KIyBQaGlsaXBwZSBHcm9zamVhbiA8cGhncm9zamVhbkBzY2l2aWV3cy5vcmc+LCAyMDA1LgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBSIDIuMTIuMFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGJ1Z3Muci1wcm9qZWN0Lm9yZ1xuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTItMDctMTIgMTI6NTlcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMTAtMTAtMDEgMjE6MDErMDEwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBQaGlsaXBwZSBHcm9zamVhbiA8cGhncm9zamVhbkBzY2l2aWV3cy5vcmc+XG4iCiJMYW5ndWFnZS1UZWFtOiBGcmVuY2ggPFItY29yZUByLXByb2plY3Qub3JnPlxuIgoiTGFuZ3VhZ2U6IGZyXG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuID4gMSk7XG4iCiJYLVBvZWRpdC1MYW5ndWFnZTogRnJlbmNoXG4iCgptc2dpZCAiIgoic29tZSBuYW1lZCBhcmd1bWVudHMgaW4gJ2ZpeGVkJyBhcmUgbm90IGFyZ3VtZW50cyB0byB0aGUgc3VwcGxpZWQgbG9nLSIKImxpa2VsaWhvb2QiCm1zZ3N0ciAiIgoicXVlbHF1ZXMgYXJndW1lbnRzIG5vbW3pcyBkYW5zICdmaXhlZCcgbmUgc29udCBwYXMgZGVzIGFyZ3VtZW50cyAiCiJjb3JyZXNwb25kYW50IGF1IG1heGltdW0gZGUgdnJhaXNzZW1ibGFuY2UgZm91cm5pIgoKbXNnaWQgIidzdGFydCcgbXVzdCBiZSBhIG5hbWVkIGxpc3QiCm1zZ3N0ciAiJ3N0YXJ0JyBkb2l0IOp0cmUgdW5lIGxpc3RlIG5vbW3pZSIKCm1zZ2lkICIiCiJzb21lIG5hbWVkIGFyZ3VtZW50cyBpbiAnc3RhcnQnIGFyZSBub3QgYXJndW1lbnRzIHRvIHRoZSBzdXBwbGllZCBsb2ctIgoibGlrZWxpaG9vZCIKbXNnc3RyICIiCiJxdWVscXVlcyBhcmd1bWVudHMgbm9tbelzIGRhbnMgJ3N0YXJ0JyBuZSBzb250IHBhcyBsZXMgYXJndW1lbnRzICIKImNvcnJlc3BvbmRhbnRzIGF1IG1heGltdW0gZGUgdnJhaXNzZW1ibGFuY2UgZm91cm5pIgoKbXNnaWQgIiIKInByb2ZpbGluZyBoYXMgZm91bmQgYSBiZXR0ZXIgc29sdXRpb24sIHNvIG9yaWdpbmFsIGZpdCBoYWQgbm90IGNvbnZlcmdlZCIKbXNnc3RyICIiCiJsZSBwcm9maWxhZ2UgYSB0cm91dukgdW5lIG1laWxsZXVyZSBzb2x1dGlvbiwgbCdhanVzdGVtZW50IG9yaWdpbmFsIG4nYSBkb25jICIKInBhcyBjb252ZXJn6SIKCm1zZ2lkICJsZXZlbHMgdHJ1bmNhdGVkIHRvIHBvc2l0aXZlIHZhbHVlcyBvbmx5Igptc2dzdHIgImxlcyBzZXVpbHMgc29udCBuaXZlbOlzIOAgZGVzIHZhbGV1cnMgcG9zaXRpdmVzIHVuaXF1ZW1lbnQiCgptc2dpZCAiZXh0cmEgYXJndW1lbnRzIGRpc2NhcmRlZCIKbXNnc3RyICJhcmd1bWVudHMgc3VwcGzpbWVudGFpcmVzIOlsaW1pbulzIgo=