IyBsaWJpY29udiBBZnJpa2FhbnMKIyBDb3B5cmlnaHQgKEMpIDIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIFBBQ0tBR0UgcGFja2FnZS4KIyBQZXRyaSBKb29zdGUgPHJrd2pwakBwdWtuZXQucHVrLmFjLnphPiwgMjAwNC4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogbGliaWNvbnYgMS45LjFcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LWxpYmljb252QGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA0LTAxLTIyIDExOjU0KzAxMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDQtMDMtMDggMTM6NDIrMDIwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBQZXRyaSBKb29zdGUgPHJrd2pwakBwdWsuYWMuemE+XG4iCiJMYW5ndWFnZS1UZWFtOiBBZnJpa2FhbnMgPGkxOG5AYWYub3JnLnphPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojOiBzcmMvaWNvbnYuYzo1NAptc2dpZCAiVXNhZ2U6IGljb252IFstY10gWy1zXSBbLWYgZnJvbWNvZGVdIFstdCB0b2NvZGVdIFtmaWxlIC4uLl0iCm1zZ3N0ciAiR2VicnVpayBzbzogaWNvbnYgWy1jXSBbLXNdIFstZiB2YW5hZi1rb2RlXSBbLXQgbmEta29kZV0gW2zqZXIgLi4uXSIKCiM6IHNyYy9pY29udi5jOjU2Cm1zZ2lkICJvcjogICAgaWNvbnYgLWwiCm1zZ3N0ciAib2Y6ICAgIGljb252IC1sIgoKIzogc3JjL2ljb252LmM6NjYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PXG4iCiJ3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS5cbiIKbXNnc3RyICIiCiJIaWVyZGllIGlzIGdyYXRpcyBwcm9ncmFtbWF0dXVyOyBreWsgaW4gZGllIGJyb25rb2RlIHZpciAiCiJrb3BpZetydm9vcndhYXJkZXMuICBEYWFyIGlzIEdFRU5cbiIKIndhYXJib3JnIG5pZTsgc2VsZnMgbmllIHZpciBWRVJLT09QQkFBUkhFSUQgb2YgR0VTS0lLVEhFSUQgVklSICdOIFNQRVNJRklFS0UgIgoiRE9FTCBuaWUuXG4iCgojOiBzcmMvaWNvbnYuYzo2OQojLCBjLWZvcm1hdAptc2dpZCAiV3JpdHRlbiBieSAlcy5cbiIKbXNnc3RyICJHZXNrcnlmIGRldXIgJXMuXG4iCgojOiBzcmMvaWNvbnYuYzoxMDUgc3JjL2ljb252LmM6MTM3IHNyYy9pY29udi5jOjE4NwojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiBpbmNvbXBsZXRlIGNoYXJhY3RlciBvciBzaGlmdCBzZXF1ZW5jZVxuIgptc2dzdHIgImljb252OiAlczogb252b2xsZWRpZ2Uga2FyYWt0ZXIgb2Ygc2t1aWZyZWVrc1xuIgoKIzogc3JjL2ljb252LmM6MTMxIHNyYy9pY29udi5jOjE4MgojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiBjYW5ub3QgY29udmVydFxuIgptc2dzdHIgImljb252OiAlczoga2FuIG5pZSBvbXNrYWtlbGluZyBkb2VuIG5pZVxuIgoKIzogc3JjL2ljb252LmM6MTUzIHNyYy9pY29udi5jOjE5MiBzcmMvaWNvbnYuYzozMTAKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiAlczogIgptc2dzdHIgImljb252OiAlczogIgoKIzogc3JjL2ljb252LmM6MjAxCiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogJXM6IEkvTyBlcnJvclxuIgptc2dzdHIgImljb252OiAlczogVC9BLWZvdXRcbiIKCiM6IHNyYy9pY29udi5jOjI5NAojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gZnJvbSAlcyB1bnN1cHBvcnRlZFxuIgptc2dzdHIgImljb252OiBvbXNrYWtlbGluZyB2YW4gJXMgd29yZCBuaWUgb25kZXJzdGV1biBuaWVcbiIKCiM6IHNyYy9pY29udi5jOjI5NgojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gdG8gJXMgdW5zdXBwb3J0ZWRcbiIKbXNnc3RyICJpY29udjogb21za2FrZWxpbmcgbmEgJXMgd29yZCBuaWUgb25kZXJzdGV1biBuaWVcbiIKCiM6IHNyYy9pY29udi5jOjI5OAojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gZnJvbSAlcyB0byAlcyB1bnN1cHBvcnRlZFxuIgptc2dzdHIgImljb252OiBvbXNrYWtlbGluZyB2YW4gJXMgbmEgJXMgd29yZCBuaWUgb25kZXJzdGV1biBuaWVcbiIKCiM6IHNyYy9pY29udi5jOjMwMgptc2dpZCAiKHN0ZGluKSIKbXNnc3RyICIoc3RkaW4pIgoKIzogc3JjL2ljb252LmM6MzIzCiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogSS9PIGVycm9yXG4iCm1zZ3N0ciAiaWNvbnY6IFQvQS1mb3V0XG4iCgojfiBtc2dpZCAiIgojfiAiVXNhZ2U6IGljb252IFstLWJpbmFyeV0gWy1jXSBbLXNdIFstZiBmcm9tY29kZV0gWy10IHRvY29kZV0gW2ZpbGUgLi4uXSIKI34gbXNnc3RyICIiCiN+ICJHZWJydWlrIHNvOiBpY29udiBbLS1iaW5hcnldIFstY10gWy1zXSBbLWYgdmFuYWYta29kZV0gWy10IG5hLWtvZGVdICIKI34gIlts6mVyIC4uLl0iCg==