IyBNZW5zYWplcyBlbiBlc3Bh8W9sIHBhcmEgR05VIGxpYmljb252LgojIENvcHlyaWdodCAoQykgMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBTYW50aWFnbyBWaWxhIERvbmNlbCA8c2FudmlsYUB1bmV4LmVzPiwgMjAwMi4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgbGliaWNvbnYgcGFja2FnZS4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogR05VIGxpYmljb252IDEuOFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGJ1Zy1nbnUtbGliaWNvbnZAZ251Lm9yZ1xuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDYtMDctMTkgMjE6MTYrMDIwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwMi0wNi0yMCAxNzowMCswMjAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IFNhbnRpYWdvIFZpbGEgRG9uY2VsIDxzYW52aWxhQHVuZXguZXM+XG4iCiJMYW5ndWFnZS1UZWFtOiBTcGFuaXNoIDxlc0BsaS5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDgtYml0XG4iCgojOiBzcmMvaWNvbnYuYzoxMDcKbXNnaWQgIlVzYWdlOiBpY29udiBbLWNdIFstc10gWy1mIGZyb21jb2RlXSBbLXQgdG9jb2RlXSBbZmlsZSAuLi5dIgptc2dzdHIgIk1vZG8gZGUgZW1wbGVvOiBpY29udiBbLWNdIFstc10gWy1mIGRlc2RlXSBbLXQgaGFzdGFdIFtmaWNoZXJvIC4uLl0iCgojOiBzcmMvaWNvbnYuYzoxMDkKbXNnaWQgIm9yOiAgICBpY29udiAtbCIKbXNnc3RyICJvIGJpZW46IGljb252IC1sIgoKIzogc3JjL2ljb252LmM6MTExCiMsIGMtZm9ybWF0Cm1zZ2lkICJUcnkgYCVzIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6MTE0CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICJVc2FnZTogJXMgW09QVElPTi4uLl0gWy1mIEVOQ09ESU5HXSBbLXQgRU5DT0RJTkddIFtJTlBVVEZJTEUuLi5dXG4iCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6MTE4CiMsIGZ1enp5LCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAib3I6ICAgICVzIC1sXG4iCm1zZ3N0ciAibyBiaWVuOiBpY29udiAtbCIKCiM6IHNyYy9pY29udi5jOjEyMwojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiQ29udmVydHMgdGV4dCBmcm9tIG9uZSBlbmNvZGluZyB0byBhbm90aGVyIGVuY29kaW5nLlxuIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjEyNwojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiT3B0aW9ucyBjb250cm9sbGluZyB0aGUgaW5wdXQgYW5kIG91dHB1dCBmb3JtYXQ6XG4iCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6MTMwCiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIiCiIgIC1mIEVOQ09ESU5HLCAtLWZyb20tY29kZT1FTkNPRElOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGVuY29kaW5nIG9mIHRoZSBpbnB1dFxuIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjEzNAojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiIgoiICAtdCBFTkNPRElORywgLS10by1jb2RlPUVOQ09ESU5HXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZW5jb2Rpbmcgb2YgdGhlIG91dHB1dFxuIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjEzOQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiT3B0aW9ucyBjb250cm9sbGluZyBjb252ZXJzaW9uIHByb2JsZW1zOlxuIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjE0MgojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtYyAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY2FyZCB1bmNvbnZlcnRpYmxlIGNoYXJhY3RlcnNcbiIKbXNnc3RyICIiCgojOiBzcmMvaWNvbnYuYzoxNDUKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiIKIiAgLS11bmljb2RlLXN1YnN0PUZPUk1BVFNUUklOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uIGZvciB1bmNvbnZlcnRpYmxlIFVuaWNvZGUgY2hhcmFjdGVyc1xuIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjE0OQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtLWJ5dGUtc3Vic3Q9Rk9STUFUU1RSSU5HICAgc3Vic3RpdHV0aW9uIGZvciB1bmNvbnZlcnRpYmxlIGJ5dGVzXG4iCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6MTUyCiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIiCiIgIC0td2lkZWNoYXItc3Vic3Q9Rk9STUFUU1RSSU5HXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb24gZm9yIHVuY29udmVydGlibGUgd2lkZSBjaGFyYWN0ZXJzXG4iCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6MTU3CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICJPcHRpb25zIGNvbnRyb2xsaW5nIGVycm9yIG91dHB1dDpcbiIKbXNnc3RyICIiCgojOiBzcmMvaWNvbnYuYzoxNjAKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiAgLXMsIC0tc2lsZW50ICAgICAgICAgICAgICAgIHN1cHByZXNzIGVycm9yIG1lc3NhZ2VzIGFib3V0IGNvbnZlcnNpb24gcHJvYmxlbXNcbiIKbXNnc3RyICIiCgojOiBzcmMvaWNvbnYuYzoxNjQKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIkluZm9ybWF0aXZlIG91dHB1dDpcbiIKbXNnc3RyICIiCgojOiBzcmMvaWNvbnYuYzoxNjcKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiAgLWwsIC0tbGlzdCAgICAgICAgICAgICAgICAgIGxpc3QgdGhlIHN1cHBvcnRlZCBlbmNvZGluZ3NcbiIKbXNnc3RyICIiCgojOiBzcmMvaWNvbnYuYzoxNzAKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiAgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0XG4iCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6MTczCiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIgIC0tdmVyc2lvbiAgICAgICAgICAgICAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdFxuIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjE3Ngptc2dpZCAiUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1nbnUtbGliaWNvbnZAZ251Lm9yZz4uXG4iCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6MTg2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOT1xuIgoid2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuXG4iCm1zZ3N0ciAiIgoiRXN0byBlcyBzb2Z0d2FyZSBsaWJyZTsgdmVhIGVsIGPzZGlnbyBmdWVudGUgcGFyYSBsYXMgY29uZGljaW9uZXMgZGUgY29waWEuXG4iCiJObyBoYXkgTklOR1VOQSBnYXJhbnTtYTsgbmkgc2lxdWllcmEgZGUgQ09NRVJDSUFCSUxJREFEIG8gSURPTkVJREFEIFBBUkEgVU5cbiIKIkZJTiBERVRFUk1JTkFETy5cbiIKCiM6IHNyYy9pY29udi5jOjE4OQojLCBjLWZvcm1hdAptc2dpZCAiV3JpdHRlbiBieSAlcy5cbiIKbXNnc3RyICJFc2NyaXRvIHBvciAlcy5cbiIKCiM6IHNyYy9pY29udi5jOjI4MAojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXMgYXJndW1lbnQ6IEEgZm9ybWF0IGRpcmVjdGl2ZSB3aXRoIGEgdmFyaWFibGUgd2lkdGggaXMgbm90IGFsbG93ZWQgaGVyZS4iCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6MjkxCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlcyBhcmd1bWVudDogQSBmb3JtYXQgZGlyZWN0aXZlIHdpdGggYSB2YXJpYWJsZSBwcmVjaXNpb24gaXMgbm90IGFsbG93ZWQgIgoiaGVyZS4iCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6MzAzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBhcmd1bWVudDogQSBmb3JtYXQgZGlyZWN0aXZlIHdpdGggYSBzaXplIGlzIG5vdCBhbGxvd2VkIGhlcmUuIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjM0MQojLCBjLWZvcm1hdAptc2dpZCAiJXMgYXJndW1lbnQ6IFRoZSBzdHJpbmcgZW5kcyBpbiB0aGUgbWlkZGxlIG9mIGEgZGlyZWN0aXZlLiIKbXNnc3RyICIiCgojOiBzcmMvaWNvbnYuYzozNDMKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGFyZ3VtZW50OiBUaGUgY2hhcmFjdGVyICclYycgaXMgbm90IGEgdmFsaWQgY29udmVyc2lvbiBzcGVjaWZpZXIuIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjM0NQojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXMgYXJndW1lbnQ6IFRoZSBjaGFyYWN0ZXIgdGhhdCB0ZXJtaW5hdGVzIHRoZSBmb3JtYXQgZGlyZWN0aXZlIGlzIG5vdCBhICIKInZhbGlkIGNvbnZlcnNpb24gc3BlY2lmaWVyLiIKbXNnc3RyICIiCgojOiBzcmMvaWNvbnYuYzozNTYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiVzIGFyZ3VtZW50OiBUaGUgZm9ybWF0IHN0cmluZyBjb25zdW1lcyBtb3JlIHRoYW4gb25lIGFyZ3VtZW50OiAldSBhcmd1bWVudC4iCm1zZ2lkX3BsdXJhbCAiIgoiJXMgYXJndW1lbnQ6IFRoZSBmb3JtYXQgc3RyaW5nIGNvbnN1bWVzIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQ6ICV1IGFyZ3VtZW50cy4iCm1zZ3N0clswXSAiIgptc2dzdHJbMV0gIiIKCiM6IHNyYy9pY29udi5jOjQxMQojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGNvbnZlcnQgYnl0ZSBzdWJzdGl0dXRpb24gdG8gVW5pY29kZTogJXMiCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6NDQ3CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgY29udmVydCB1bmljb2RlIHN1YnN0aXR1dGlvbiB0byB0YXJnZXQgZW5jb2Rpbmc6ICVzIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjQ4NAojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGNvbnZlcnQgYnl0ZSBzdWJzdGl0dXRpb24gdG8gd2lkZSBzdHJpbmc6ICVzIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjUyMQojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGNvbnZlcnQgd2lkZWNoYXIgc3Vic3RpdHV0aW9uIHRvIHRhcmdldCBlbmNvZGluZzogJXMiCm1zZ3N0ciAiIgoKIzogc3JjL2ljb252LmM6NTU4CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgY29udmVydCBieXRlIHN1YnN0aXR1dGlvbiB0byB0YXJnZXQgZW5jb2Rpbmc6ICVzIgptc2dzdHIgIiIKCiM6IHNyYy9pY29udi5jOjU5MiBzcmMvaWNvbnYuYzo2MzYgc3JjL2ljb252LmM6NzEwCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiJXM6JXU6JXU6IGluY29tcGxldGUgY2hhcmFjdGVyIG9yIHNoaWZ0IHNlcXVlbmNlIgptc2dzdHIgImljb252OiAlczogY2Fy4WN0ZXIgbyBzZWN1ZW5jaWEgZGUgZGVzcGxhemFtaWVudG8gaW5jb21wbGV0YVxuIgoKIzogc3JjL2ljb252LmM6NjI1IHNyYy9pY29udi5jOjcwMAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiV1OiV1OiBjYW5ub3QgY29udmVydCIKbXNnc3RyICJpY29udjogJXM6IG5vIHNlIHB1ZWRlIGNvbnZlcnRpclxuIgoKIzogc3JjL2ljb252LmM6NjY3IHNyYy9pY29udi5jOjczMAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiVzOiV1OiV1Igptc2dzdHIgImljb252OiAlczogIgoKIzogc3JjL2ljb252LmM6NzQyCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiJXM6IEkvTyBlcnJvciIKbXNnc3RyICJpY29udjogJXM6IGVycm9yIGRlIEUvU1xuIgoKIzogc3JjL2ljb252LmM6OTI2CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY29udmVyc2lvbiBmcm9tICVzIHVuc3VwcG9ydGVkIgptc2dzdHIgImljb252OiBubyBzZSBhZG1pdGUgbGEgY29udmVyc2nzbiBkZSBgJXMnXG4iCgojOiBzcmMvaWNvbnYuYzo5MjgKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJjb252ZXJzaW9uIHRvICVzIHVuc3VwcG9ydGVkIgptc2dzdHIgIm5vIHNlIGFkbWl0ZSBsYSBjb252ZXJzafNuIGEgYCVzJ1xuIgoKIzogc3JjL2ljb252LmM6OTMwCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY29udmVyc2lvbiBmcm9tICVzIHRvICVzIHVuc3VwcG9ydGVkIgptc2dzdHIgImljb252OiBubyBzZSBhZG1pdGUgbGEgY29udmVyc2nzbiBkZSBgJXMnIGEgYCVzJ1xuIgoKIzogc3JjL2ljb252LmM6OTMxCiMsIGMtZm9ybWF0Cm1zZ2lkICJ0cnkgJyVzIC1sJyB0byBnZXQgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGVuY29kaW5ncyIKbXNnc3RyICIiCgojOiBzcmMvaWNvbnYuYzo5ODUKbXNnaWQgIihzdGRpbikiCm1zZ3N0ciAiKGVudHJhZGEgZXN04W5kYXIpIgoKIzogc3JjL2ljb252LmM6OTkzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyIKbXNnc3RyICIiCgojOiBzcmMvaWNvbnYuYzoxMDA0CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiSS9PIGVycm9yIgptc2dzdHIgImljb252OiBlcnJvciBkZSBFL1NcbiIKCiN+IG1zZ2lkICJpY29udjogJXM6ICIKI34gbXNnc3RyICJpY29udjogJXM6ICIKCiN+IG1zZ2lkICIiCiN+ICJVc2FnZTogaWNvbnYgWy0tYmluYXJ5XSBbLWNdIFstc10gWy1mIGZyb21jb2RlXSBbLXQgdG9jb2RlXSBbZmlsZSAuLi5dIgojfiBtc2dzdHIgIiIKI34gIk1vZG8gZGUgZW1wbGVvOiBpY29udiBbLS1iaW5hcnldIFstY10gWy1zXSBbLWYgZGVzZGVdIFstdCBoYXN0YV0gIgojfiAiW2ZpY2hlcm8gLi4uXSIK