IyBNZXNhamVsZSDubiBsaW1iYSByb23ibuMgcGVudHJ1IHBhY2hldHVsIGxpYmljb252LgojIENvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBFdWdlbiBIb2FuY2EgPGV1Z2VuaEB1cmJhbi1ncmFmeC5ybz4sIDIwMDMuCiMgQWNlc3QgZmm6aWVyIGVzdGUgZGlzdHJpYnVpdCBzdWIgYWNlZWG6aSBsaWNlbv7jIGNhILppIHBhY2hldHVsIGxpYmljb252CiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IGxpYmljb252LTEuOS4xXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogYnVnLWdudS1saWJpY29udkBnbnUub3JnXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwNC0wMS0yMiAxMTo1NCswMTAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAzLTA1LTE3IDE1OjE1KzAzMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogRXVnZW4gSG9hbmNhIDxldWdlbmhAdXJiYW4tZ3JhZngucm8+XG4iCiJMYW5ndWFnZS1UZWFtOiBSb21hbmlhbiA8dHJhbnNsYXRpb24tdGVhbS1yb0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTJcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiM6IHNyYy9pY29udi5jOjU0Cm1zZ2lkICJVc2FnZTogaWNvbnYgWy1jXSBbLXNdIFstZiBmcm9tY29kZV0gWy10IHRvY29kZV0gW2ZpbGUgLi4uXSIKbXNnc3RyICJGb2xvc2lyZTogaWNvbnYgWy1jXSBbLXNdIFstZiBkaW5fY29kXSBbLXQg7m5fY29kXSBbZmm6aWVyIC4uLl0iCgojOiBzcmMvaWNvbnYuYzo1Ngptc2dpZCAib3I6ICAgIGljb252IC1sIgptc2dzdHIgInNhdTogICBpY29udiAtbCIKCiM6IHNyYy9pY29udi5jOjY2CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiIgoiVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk9cbiIKIndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLlxuIgptc2dzdHIgIiIKIkFjZXN0YSBlc3RlIHNvZnR3YXJlIGZyZWU7IGNpdGn+aSBzdXJzZWxlcGVudHJ1IGNvbmRp/mlpbGUgZGUgY29waWVyZS4gTlVcbiIKImV4aXN04yBuaWNpIG8gZ2FyYW7+aWU7IG5pY2kgbeNjYXJWQU5EQUJJTElUQVRFQSBzYXUgTU9ESUZJQ0FSRUEgzk5UUi1VTlxuIgoiU0NPUCBQUklWQVQuXG4iCgojOiBzcmMvaWNvbnYuYzo2OQojLCBjLWZvcm1hdAptc2dpZCAiV3JpdHRlbiBieSAlcy5cbiIKbXNnc3RyICJTY3JpcyBkZSAlcy5cbiIKCiM6IHNyYy9pY29udi5jOjEwNSBzcmMvaWNvbnYuYzoxMzcgc3JjL2ljb252LmM6MTg3CiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogJXM6IGluY29tcGxldGUgY2hhcmFjdGVyIG9yIHNoaWZ0IHNlcXVlbmNlXG4iCm1zZ3N0ciAiaWNvbnY6ICVzOiBjYXJhY3RlciBzYXUgc2VjdmVu/uMgZGUgc2hpZnQgaW5jb21wbGV0ZVxuIgoKIzogc3JjL2ljb252LmM6MTMxIHNyYy9pY29udi5jOjE4MgojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiBjYW5ub3QgY29udmVydFxuIgptc2dzdHIgImljb252OiAlczogbnUgcG90IGNvbnZlcnRpXG4iCgojOiBzcmMvaWNvbnYuYzoxNTMgc3JjL2ljb252LmM6MTkyIHNyYy9pY29udi5jOjMxMAojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiAiCm1zZ3N0ciAiaWNvbnY6ICVzOiAiCgojOiBzcmMvaWNvbnYuYzoyMDEKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiAlczogSS9PIGVycm9yXG4iCm1zZ3N0ciAiaWNvbnY6ICVzOiBlcm9yaSBJL09cbiIKCiM6IHNyYy9pY29udi5jOjI5NAojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gZnJvbSAlcyB1bnN1cHBvcnRlZFxuIgptc2dzdHIgImljb252OiBjb252ZXJzaWEgZGluICVzIG51IGVzdGUgc3Vwb3J0YXTjXG4iCgojOiBzcmMvaWNvbnYuYzoyOTYKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBjb252ZXJzaW9uIHRvICVzIHVuc3VwcG9ydGVkXG4iCm1zZ3N0ciAiaWNvbnY6IGNvbnZlcnNpYSDubiAlcyBudSBlc3RlIHN1cG9ydGF041xuIgoKIzogc3JjL2ljb252LmM6Mjk4CiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogY29udmVyc2lvbiBmcm9tICVzIHRvICVzIHVuc3VwcG9ydGVkXG4iCm1zZ3N0ciAiaWNvbnY6IGNvbnZlcnNpYSBkaW4gJXMg7m4gJXMgbnUgZXN0ZSBzdXBvcnRhdONcbiIKCiM6IHNyYy9pY29udi5jOjMwMgptc2dpZCAiKHN0ZGluKSIKbXNnc3RyICIoc3RkaW4pIgoKIzogc3JjL2ljb252LmM6MzIzCiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogSS9PIGVycm9yXG4iCm1zZ3N0ciAiaWNvbnY6IGVyb2FyZSBJL09cbiIKCiN+IG1zZ2lkICIiCiN+ICJVc2FnZTogaWNvbnYgWy0tYmluYXJ5XSBbLWNdIFstc10gWy1mIGZyb21jb2RlXSBbLXQgdG9jb2RlXSBbZmlsZSAuLi5dIgojfiBtc2dzdHIgIiIKI34gIkZvbG9zaXJlOiBpY29udiBbLS1iaW5hcnldIFstY10gWy1zXSBbLWYgZGluX2NvZF0gWy10IO5uX2NvZF0gW2ZpumllciAuLi5dIgo=