IyBFc3RvbmlhbiB0cmFuc2xhdGlvbnMgZm9yIGxpYmljb252LgojIENvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgbGliaWNvbnYgcGFja2FnZS4KIyBUb29tYXMgU29vbWUgPHRzb29tZUBtZS5jb20+LCAyMDE2LgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBsaWJpY29udiAxLjE1LXByZTFcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LWxpYmljb252QGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDIyLTAyLTEyIDEzOjI5KzAxMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMTYtMTItMTIgMTM6MjMrMDIwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBUb29tYXMgU29vbWUgPHRzb29tZUBtZS5jb20+XG4iCiJMYW5ndWFnZS1UZWFtOiBFc3RvbmlhbiA8bGludXgtZWVAbGlzdHMuZWVuZXQuZWU+XG4iCiJMYW5ndWFnZTogZXRcbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMTVcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlgtQnVnczogUmVwb3J0IHRyYW5zbGF0aW9uIGVycm9ycyB0byB0aGUgTGFuZ3VhZ2UtVGVhbSBhZGRyZXNzLlxuIgoiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7XG4iCgojLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0IGxpbmUgb2YgdGhlIHNob3J0IHVzYWdlIG1lc3NhZ2UuCiM6IHNyYy9pY29udi5jOjEwNAptc2dpZCAiVXNhZ2U6IGljb252IFstY10gWy1zXSBbLWYgZnJvbWNvZGVdIFstdCB0b2NvZGVdIFtmaWxlIC4uLl0iCm1zZ3N0ciAiS2FzdXRhbWluZTogaWNvbnYgWy1jXSBbLXNdIFstZiBrb29kaXN0XSBbLXQga29vZGldIFtmYWlsIC4uLl0iCgojLiBUUkFOU0xBVE9SUzogVGhlIHNlY29uZCBsaW5lIG9mIHRoZSBzaG9ydCB1c2FnZSBtZXNzYWdlLgojLiBBbGlnbiBpdCBjb3JyZWN0bHkgYWdhaW5zdCB0aGUgZmlyc3QgbGluZS4KIzogc3JjL2ljb252LmM6MTA4Cm1zZ2lkICJvcjogICAgaWNvbnYgLWwiCm1zZ3N0ciAidvVpOiAgICBpY29udiAtbCIKCiM6IHNyYy9pY29udi5jOjExMAojLCBjLWZvcm1hdAptc2dpZCAiVHJ5ICclcyAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgptc2dzdHIgIkxpc2FpbmZvIHNhYW1pc2VrcyBrYXN1dGFnZSAnJXMgLS1oZWxwJy5cbiIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgbGluZSBvZiB0aGUgbG9uZyB1c2FnZSBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byB0aGUgcHJvZ3JhbSBuYW1lLgojOiBzcmMvaWNvbnYuYzoxMTUKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIlVzYWdlOiAlcyBbT1BUSU9OLi4uXSBbLWYgRU5DT0RJTkddIFstdCBFTkNPRElOR10gW0lOUFVURklMRS4uLl1cbiIKbXNnc3RyICJLYXN1dGFtaW5lOiAlcyBbVtVUSS4uLl0gWy1mIEtPREVFUklOR10gWy10IEtPREVFUklOR10gW1NJU0VOREZBSUwuLi5dXG4iCgojLiBUUkFOU0xBVE9SUzogVGhlIHNlY29uZCBsaW5lIG9mIHRoZSBsb25nIHVzYWdlIG1lc3NhZ2UuCiMuIEFsaWduIGl0IGNvcnJlY3RseSBhZ2FpbnN0IHRoZSBmaXJzdCBsaW5lLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byB0aGUgcHJvZ3JhbSBuYW1lLgojOiBzcmMvaWNvbnYuYzoxMjIKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIm9yOiAgICAlcyAtbFxuIgptc2dzdHIgInb1aTogICAgJXMgLWxcbiIKCiMuIFRSQU5TTEFUT1JTOiBEZXNjcmlwdGlvbiBvZiB0aGUgaWNvbnYgcHJvZ3JhbS4KIzogc3JjL2ljb252LmM6MTI4CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICJDb252ZXJ0cyB0ZXh0IGZyb20gb25lIGVuY29kaW5nIHRvIGFub3RoZXIgZW5jb2RpbmcuXG4iCm1zZ3N0ciAiVGVpc2VuZGFiIHRla3N0aSD8aGVzdCBrb29kaXRhYmVsaXN0IHRlaXNlLlxuIgoKIzogc3JjL2ljb252LmM6MTMyCiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICJPcHRpb25zIGNvbnRyb2xsaW5nIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGZvcm1hdDpcbiIKbXNnc3RyICJTaXNlbmRpIGphIHbkbGp1bmRpIHZvcm1pbmd1dCBrb250cm9sbGl2YWQgdvV0bWVkOlxuIgoKIzogc3JjL2ljb252LmM6MTM1CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIiCiIgIC1mIEVOQ09ESU5HLCAtLWZyb20tY29kZT1FTkNPRElOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGVuY29kaW5nIG9mIHRoZSBpbnB1dFxuIgptc2dzdHIgIiIKIiAgLWYgS09ERUVSSU5HLCAtLWZyb20tY29kZT1LT0RFRVJJTkdcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpc2VuZGkga29vZGl0YWJlbFxuIgoKIzogc3JjL2ljb252LmM6MTM5CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIiCiIgIC10IEVOQ09ESU5HLCAtLXRvLWNvZGU9RU5DT0RJTkdcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBlbmNvZGluZyBvZiB0aGUgb3V0cHV0XG4iCm1zZ3N0ciAiIgoiICAtdCBLT0RFRVJJTkcsIC0tdG8tY29kZT1LT0RFRVJJTkdcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHbkbGp1bmRpIGtvb2RpdGFiZWxcbiIKCiM6IHNyYy9pY29udi5jOjE0NAojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiT3B0aW9ucyBjb250cm9sbGluZyBjb252ZXJzaW9uIHByb2JsZW1zOlxuIgptc2dzdHIgIlRlaXNlbmRhbWlzZWwgdGVra2l2YXRlIHByb2JsZWVtaWRlIGtvbnRyb2xsaSB29XRtZWQ6XG4iCgojOiBzcmMvaWNvbnYuYzoxNDcKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIiAgLWMgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NhcmQgdW5jb252ZXJ0aWJsZSBjaGFyYWN0ZXJzXG4iCm1zZ3N0ciAiICAtYyAgICAgICAgICAgICAgICAgICAgICAgICAgZWVtYWxkYSBtaXR0ZXRlaXNlbmRhdGF2YWQgc/xtYm9saWRcbiIKCiM6IHNyYy9pY29udi5jOjE1MAojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiIgoiICAtLXVuaWNvZGUtc3Vic3Q9Rk9STUFUU1RSSU5HXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb24gZm9yIHVuY29udmVydGlibGUgVW5pY29kZSBjaGFyYWN0ZXJzXG4iCm1zZ3N0ciAiIgoiICAtLXVuaWNvZGUtc3Vic3Q9Vk9STUlOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWl0dGV0ZWlzZW5kYXZhdGUgVW5pa29vZGkgc/xtYm9saXRlIGFzZW5kdXNcbiIKCiM6IHNyYy9pY29udi5jOjE1NAojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtLWJ5dGUtc3Vic3Q9Rk9STUFUU1RSSU5HICAgc3Vic3RpdHV0aW9uIGZvciB1bmNvbnZlcnRpYmxlIGJ5dGVzXG4iCm1zZ3N0ciAiICAtLWJ5dGUtc3Vic3Q9Vk9STUlORyAgICAgICAgbWl0dGV0ZWlzZW5kYXRhdmF0ZSBiYWl0aWRlIGFzZW5kdXNcbiIKCiM6IHNyYy9pY29udi5jOjE1NwojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiIgoiICAtLXdpZGVjaGFyLXN1YnN0PUZPUk1BVFNUUklOR1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uIGZvciB1bmNvbnZlcnRpYmxlIHdpZGUgY2hhcmFjdGVyc1xuIgptc2dzdHIgIiIKIiAgLS13aWRlY2hhci1zdWJzdD1WT1JNSU5HXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXR0ZXRlaXNlbmRhdGF2YXRlIG1pdG1lYmFpZGkgc/xtYm9saXRlIGFzZW5kdXNcbiIKCiM6IHNyYy9pY29udi5jOjE2MgojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiT3B0aW9ucyBjb250cm9sbGluZyBlcnJvciBvdXRwdXQ6XG4iCm1zZ3N0ciAiVmlnYWRlIHbkbGp1bmRpIGtvbnRyb2xsaW1pc2UgdvV0bWVkOlxuIgoKIzogc3JjL2ljb252LmM6MTY1CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIgIC1zLCAtLXNpbGVudCAgICAgICAgICAgICAgICBzdXBwcmVzcyBlcnJvciBtZXNzYWdlcyBhYm91dCBjb252ZXJzaW9uIHByb2JsZW1zXG4iCm1zZ3N0ciAiICAtcywgLS1zaWxlbnQgICAgICAgICAgICAgICAga2VlbGEgcHJvYmxlZW1pZGVzdCB0ZWF0YW1pbmVcbiIKCiM6IHNyYy9pY29udi5jOjE2OQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiSW5mb3JtYXRpdmUgb3V0cHV0OlxuIgptc2dzdHIgIkluZm925GxqdW5kOlxuIgoKIzogc3JjL2ljb252LmM6MTcyCiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIgIC1sLCAtLWxpc3QgICAgICAgICAgICAgICAgICBsaXN0IHRoZSBzdXBwb3J0ZWQgZW5jb2RpbmdzXG4iCm1zZ3N0ciAiICAtbCwgLS1saXN0ICAgICAgICAgICAgICAgICAgduRsamFzdGEgdG9ldGF0dWQga29vZGl0YWJlbGl0ZSBuaW1la2lyaVxuIgoKIzogc3JjL2ljb252LmM6MTc1CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIgIC0taGVscCAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdFxuIgptc2dzdHIgIiAgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgIHbkbGphc3RhIHNlZSBhYmlpbmZvIGphIGz1cGV0YSB09vZcbiIKCiM6IHNyYy9pY29udi5jOjE3OAojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXRcbiIKbXNnc3RyICIgIC0tdmVyc2lvbiAgICAgICAgICAgICAgICAgICB25GxqYXN0YSB2ZXJzaW9vbmkgaW5mbyBqYSBs9XBldGEgdPb2XG4iCgojLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0IHBsYWNlaG9sZGVyIGlzIHRoZSB3ZWIgYWRkcmVzcyBvZiB0aGUgU2F2YW5uYWgKIy4gcHJvamVjdCBvZiB0aGlzIHBhY2thZ2UuICBUaGUgc2Vjb25kIHBsYWNlaG9sZGVyIGlzIHRoZSBidWctcmVwb3J0aW5nCiMuIGVtYWlsIGFkZHJlc3MgZm9yIHRoaXMgcGFja2FnZS4gIFBsZWFzZSBhZGQgX2Fub3RoZXIgbGluZV8gc2F5aW5nCiMuICJSZXBvcnQgdHJhbnNsYXRpb24gYnVncyB0byA8Li4uPlxuIiB3aXRoIHRoZSBhZGRyZXNzIGZvciB0cmFuc2xhdGlvbgojLiBidWdzICh0eXBpY2FsbHkgeW91ciB0cmFuc2xhdGlvbiB0ZWFtJ3Mgd2ViIG9yIGVtYWlsIGFkZHJlc3MpLgojOiBzcmMvaWNvbnYuYzoxODYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlJlcG9ydCBidWdzIGluIHRoZSBidWcgdHJhY2tlciBhdCA8JXM+XG4iCiJvciBieSBlbWFpbCB0byA8JXM+LlxuIgptc2dzdHIgIiIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgJXMgcGxhY2Vob2xkZXIgaXMgdGhlIHdlYiBhZGRyZXNzIG9mIHRoZSBHUEwgbGljZW5zZS4KIzogc3JjL2ljb252LmM6MjAyCiMsIGZ1enp5LCBjLWZvcm1hdCwgbm8td3JhcAojfCBtc2dpZCAiIgojfCAiTGljZW5zZSBHUEx2Mys6IEdOVSBHUEwgdmVyc2lvbiAzIG9yIGxhdGVyIDxodHRwOi8vZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbD5cbiIKI3wgIlRoaXMgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGFyZSBmcmVlIHRvIGNoYW5nZSBhbmQgcmVkaXN0cmlidXRlIGl0LlxuIgojfCAiVGhlcmUgaXMgTk8gV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdy5cbiIKbXNnaWQgIiIKIkxpY2Vuc2UgR1BMdjMrOiBHTlUgR1BMIHZlcnNpb24gMyBvciBsYXRlciA8JXM+XG4iCiJUaGlzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBhcmUgZnJlZSB0byBjaGFuZ2UgYW5kIHJlZGlzdHJpYnV0ZSBpdC5cbiIKIlRoZXJlIGlzIE5PIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuXG4iCm1zZ3N0ciAiIgoiTGl0c2VudHMgR1BMdjMrOiBHTlUgR1BMIHZlcnNpb29uIDMgdvVpIHV1ZW0gPGh0dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sPlxuIgoiU2VlIG9uIHZhYmEgdGFya3ZhcmE6IHRlaWwgb24gbHViYXR1ZCBzZWRhIG11dXRhIGphIGxldml0YWRhLlxuIgoiR0FSQU5USUkgUFVEVUIsIHZhc3RhdmFsdCBzZWFkdXNlZ2EgbHViYXR1ZCBwaWlyaWRlbGUuXG4iCgojLiBUUkFOU0xBVE9SUzogVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYW4gYXV0aG9yJ3MgbmFtZS4KIzogc3JjL2ljb252LmM6MjA4CiMsIGMtZm9ybWF0Cm1zZ2lkICJXcml0dGVuIGJ5ICVzLlxuIgptc2dzdHIgIktpcmp1dGFudWQgJXMuXG4iCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYSBjb21tYW5kLWxpbmUgb3B0aW9uLgojOiBzcmMvaWNvbnYuYzozMDIKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiVzIGFyZ3VtZW50OiBBIGZvcm1hdCBkaXJlY3RpdmUgd2l0aCBhIHZhcmlhYmxlIHdpZHRoIGlzIG5vdCBhbGxvd2VkIGhlcmUuIgptc2dzdHIgIiVzIGFyZ3VtZW50OiBNdXV0dXZhIHBpa2t1c2VnYSB2b3JtaW5nIGVpIG9sZSBzaWluIGx1YmF0dWQuIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KIzogc3JjL2ljb252LmM6MzE3CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlcyBhcmd1bWVudDogQSBmb3JtYXQgZGlyZWN0aXZlIHdpdGggYSB2YXJpYWJsZSBwcmVjaXNpb24gaXMgbm90IGFsbG93ZWQgIgoiaGVyZS4iCm1zZ3N0ciAiJXMgYXJndW1lbnQ6IE11dXR1dmEgdORwc3VzZWdhIHZvcm1pbmcgZWkgb2xlIHNpaW4gbHViYXR1ZC4iCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYSBjb21tYW5kLWxpbmUgb3B0aW9uLgojOiBzcmMvaWNvbnYuYzozMzMKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGFyZ3VtZW50OiBBIGZvcm1hdCBkaXJlY3RpdmUgd2l0aCBhIHNpemUgaXMgbm90IGFsbG93ZWQgaGVyZS4iCm1zZ3N0ciAiJXMgYXJndW1lbnQ6IFN1dXJ1c2UgbeTkcmFuZ3VnYSB2b3JtaW5nIGVpIG9sZSBzaWluIGx1YmF0dWQuIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KIzogc3JjL2ljb252LmM6Mzc1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBhcmd1bWVudDogVGhlIHN0cmluZyBlbmRzIGluIHRoZSBtaWRkbGUgb2YgYSBkaXJlY3RpdmUuIgptc2dzdHIgIiVzIGFyZ3VtZW50OiBT9W5lIGz1cHBlYiBrZXNldCBkaXJla3RpaXZpLiIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIGNvbW1hbmQtbGluZSBvcHRpb24uCiMuIFRoZSAlYyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGFuIHVua25vd24gZm9ybWF0IGRpcmVjdGl2ZS4KIzogc3JjL2ljb252LmM6MzgyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyBhcmd1bWVudDogVGhlIGNoYXJhY3RlciAnJWMnIGlzIG5vdCBhIHZhbGlkIGNvbnZlcnNpb24gc3BlY2lmaWVyLiIKbXNnc3RyICIlcyBhcmd1bWVudDogU/xtYm9sICclYycgZWkgb2xlIGx1YmF0dWQgdGVpc2VuZHVzZXMuIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KIzogc3JjL2ljb252LmM6Mzg4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlcyBhcmd1bWVudDogVGhlIGNoYXJhY3RlciB0aGF0IHRlcm1pbmF0ZXMgdGhlIGZvcm1hdCBkaXJlY3RpdmUgaXMgbm90IGEgIgoidmFsaWQgY29udmVyc2lvbiBzcGVjaWZpZXIuIgptc2dzdHIgIiIKIiVzIGFyZ3VtZW50OiBWb3JtaW5naSBkaXJla3RpaXZpIGz1cGV0YXYgc/xtYm9sIGVpIG9sZSB0ZWlzZW5kdXNlcyBsdWJhdHVkLiIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIGNvbW1hbmQtbGluZSBvcHRpb24uCiMuIFRoZSAldSBwbGFjZWhvbGRlciBleHBhbmRzIHRvIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGNvbnN1bWVkIGJ5IHRoZSBmb3JtYXQgc3RyaW5nLgojOiBzcmMvaWNvbnYuYzo0MDQKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiVzIGFyZ3VtZW50OiBUaGUgZm9ybWF0IHN0cmluZyBjb25zdW1lcyBtb3JlIHRoYW4gb25lIGFyZ3VtZW50OiAldSBhcmd1bWVudC4iCm1zZ2lkX3BsdXJhbCAiIgoiJXMgYXJndW1lbnQ6IFRoZSBmb3JtYXQgc3RyaW5nIGNvbnN1bWVzIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQ6ICV1IGFyZ3VtZW50cy4iCm1zZ3N0clswXSAiIgoiJXMgYXJndW1lbnQ6IFZvcm1pbmd1IHP1bmUgbvV1YWIgZW5hbSBrdWkg/Gh0ZSBhcmd1bWVudGk6ICV1IGFyZ3VtZW50LiIKbXNnc3RyWzFdICIiCiIlcyBhcmd1bWVudDogVm9ybWluZ3Ugc/VuZSBu9XVhYiBlbmFtIGt1aSD8aHRlIGFyZ3VtZW50aTogJXUgYXJndW1lbnRpLiIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIHBpZWNlIG9mIHRleHQsIHNwZWNpZmllZCB0aHJvdWdoIC0tYnl0ZS1zdWJzdC4KIzogc3JjL2ljb252LmM6NDYyCiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgY29udmVydCBieXRlIHN1YnN0aXR1dGlvbiB0byBVbmljb2RlOiAlcyIKbXNnc3RyICJiYWlkaWFzZW5kdXN0IGVpIHNhYSBVbmlrb29kaSB0ZWlzZW5kYWRhOiAlcyIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byBhIHBpZWNlIG9mIHRleHQsIHNwZWNpZmllZCB0aHJvdWdoIC0tdW5pY29kZS1zdWJzdC4KIzogc3JjL2ljb252LmM6NTAyCiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgY29udmVydCB1bmljb2RlIHN1YnN0aXR1dGlvbiB0byB0YXJnZXQgZW5jb2Rpbmc6ICVzIgptc2dzdHIgInVuaWtvb2RpIGFzZW5kdXN0IGVpIHNhYSBzaWh0dGFiZWxpc3NlIHRlaXNlbmRhZGE6ICVzIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgcGllY2Ugb2YgdGV4dCwgc3BlY2lmaWVkIHRocm91Z2ggLS1ieXRlLXN1YnN0LgojOiBzcmMvaWNvbnYuYzo1NDMKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBjb252ZXJ0IGJ5dGUgc3Vic3RpdHV0aW9uIHRvIHdpZGUgc3RyaW5nOiAlcyIKbXNnc3RyICJiYWlkaWFzZW5kdXN0IGVpIHNhYSBtaXRtZWJhaWRpbGlzdGUgc/xtYm9saXRlZ2Egc/VuZWtzIHRlaXNlbmRhZGE6ICVzIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSAlcyBwbGFjZWhvbGRlciBleHBhbmRzIHRvIGEgcGllY2Ugb2YgdGV4dCwgc3BlY2lmaWVkIHRocm91Z2ggLS13aWRlY2hhci1zdWJzdC4KIzogc3JjL2ljb252LmM6NTg0CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3QgY29udmVydCB3aWRlY2hhciBzdWJzdGl0dXRpb24gdG8gdGFyZ2V0IGVuY29kaW5nOiAlcyIKbXNnc3RyICJ3aWRlY2hhciBz/G1ib2xlaWQgZWkgc2FhIHNpaHR0YWJlbGlzc2UgdGVpc2VuZGFkYTogJXMiCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gYSBwaWVjZSBvZiB0ZXh0LCBzcGVjaWZpZWQgdGhyb3VnaCAtLWJ5dGUtc3Vic3QuCiM6IHNyYy9pY29udi5jOjYyNQojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IGNvbnZlcnQgYnl0ZSBzdWJzdGl0dXRpb24gdG8gdGFyZ2V0IGVuY29kaW5nOiAlcyIKbXNnc3RyICJiYWl0aWRlIGFzZW5kdXN0IGVpIHNhYSBzaWh0dGFiZWxpc3NlIHRlaXNlbmRhZGE6ICVzIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSBwbGFjZWhvbGRlcnMgZXhwYW5kIHRvIHRoZSBpbnB1dCBmaWxlIG5hbWUsIGEgbGluZSBudW1iZXIsIGFuZCBhIGNvbHVtbiBudW1iZXIuCiM6IHNyYy9pY29udi5jOjY0NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6JXU6JXU6IGNhbm5vdCBjb252ZXJ0Igptc2dzdHIgIiVzOiV1OiV1OiBlaSBzYWEgdGVpc2VuZGFkYSIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgcGxhY2Vob2xkZXJzIGV4cGFuZCB0byB0aGUgaW5wdXQgZmlsZSBuYW1lLCBhIGxpbmUgbnVtYmVyLCBhbmQgYSBjb2x1bW4gbnVtYmVyLgojLiBBICJzaGlmdCBzZXF1ZW5jZSIgaXMgYSBzZXF1ZW5jZSBvZiBieXRlcyB0aGF0IGNoYW5nZXMgdGhlIHN0YXRlIG9mIHRoZSBjb252ZXJ0ZXI7CiMuIHRoaXMgY29uY2VwdCBleGlzdHMgb25seSBmb3IgInN0YXRlZnVsIiBlbmNvZGluZ3MgbGlrZSBJU08tMjAyMi1KUC4KIzogc3JjL2ljb252LmM6NjU4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczoldToldTogaW5jb21wbGV0ZSBjaGFyYWN0ZXIgb3Igc2hpZnQgc2VxdWVuY2UiCm1zZ3N0ciAiJXM6JXU6JXU6IG1pdHRldORpZWxpayBz/G1ib2wgdvVpIG5paGtlauRyamVuZCIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgcGFydCBvZiBhbiBlcnJvciBtZXNzYWdlLgojLiBJdCBpcyBmb2xsb3dlZCBieSBhIGNvbG9uIGFuZCBhIGRldGFpbCBtZXNzYWdlLgojLiBUaGUgcGxhY2Vob2xkZXJzIGV4cGFuZCB0byB0aGUgaW5wdXQgZmlsZSBuYW1lLCBhIGxpbmUgbnVtYmVyLCBhbmQgYSBjb2x1bW4gbnVtYmVyLgojOiBzcmMvaWNvbnYuYzo2NzEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiV1OiV1Igptc2dzdHIgIiVzOiV1OiV1IgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSBwbGFjZWhvbGRlciBleHBhbmRzIHRvIHRoZSBpbnB1dCBmaWxlIG5hbWUuCiM6IHNyYy9pY29udi5jOjgzMgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IEkvTyBlcnJvciIKbXNnc3RyICIlczogUy9WIHZpZ2EiCgojLiBUUkFOU0xBVE9SUzogQW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gdGhlIGVuY29kaW5nIG5hbWUsIHNwZWNpZmllZCB0aHJvdWdoIC0tZnJvbS1jb2RlLgojOiBzcmMvaWNvbnYuYzoxMDMwCiMsIGMtZm9ybWF0Cm1zZ2lkICJjb252ZXJzaW9uIGZyb20gJXMgdW5zdXBwb3J0ZWQiCm1zZ3N0ciAidGVpc2VuZHVzdCB0YWJlbGlzdCAlcyBlaSB0b2V0YXRhIgoKIy4gVFJBTlNMQVRPUlM6IEFuIGVycm9yIG1lc3NhZ2UuCiMuIFRoZSBwbGFjZWhvbGRlciBleHBhbmRzIHRvIHRoZSBlbmNvZGluZyBuYW1lLCBzcGVjaWZpZWQgdGhyb3VnaCAtLXRvLWNvZGUuCiM6IHNyYy9pY29udi5jOjEwMzYKIywgYy1mb3JtYXQKbXNnaWQgImNvbnZlcnNpb24gdG8gJXMgdW5zdXBwb3J0ZWQiCm1zZ3N0ciAidGVpc2VuZHVzdCB0YWJlbGlzc2UgJXMgZWkgdG9ldGF0YSIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojLiBUaGUgcGxhY2Vob2xkZXJzIGV4cGFuZCB0byB0aGUgZW5jb2RpbmcgbmFtZXMsIHNwZWNpZmllZCB0aHJvdWdoIC0tZnJvbS1jb2RlIGFuZCAtLXRvLWNvZGUsIHJlc3BlY3RpdmVseS4KIzogc3JjL2ljb252LmM6MTA0MgojLCBjLWZvcm1hdAptc2dpZCAiY29udmVyc2lvbiBmcm9tICVzIHRvICVzIHVuc3VwcG9ydGVkIgptc2dzdHIgInRlaXNlbmR1c3QgdGFiZWxpc3QgJXMgdGFiZWxpc3NlICVzIGVpIHRvZXRhdGEiCgojLiBUUkFOU0xBVE9SUzogQWRkaXRpb25hbCBhZHZpY2UgYWZ0ZXIgYW4gZXJyb3IgbWVzc2FnZS4KIy4gVGhlICVzIHBsYWNlaG9sZGVyIGV4cGFuZHMgdG8gdGhlIHByb2dyYW0gbmFtZS4KIzogc3JjL2ljb252LmM6MTA0NwojLCBjLWZvcm1hdAptc2dpZCAidHJ5ICclcyAtbCcgdG8gZ2V0IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBlbmNvZGluZ3MiCm1zZ3N0ciAiVG9ldGF0dWQga29vZGl0YWJlbGl0ZSBuaWVraXJqYSBzYWF0ZSBr5HN1Z2EgJyVzIC1sJyIKCiMuIFRSQU5TTEFUT1JTOiBBIGZpbGVuYW1lIHN1YnN0aXR1dGUgZGVub3Rpbmcgc3RhbmRhcmQgaW5wdXQuCiM6IHNyYy9pY29udi5jOjExMDQKbXNnaWQgIihzdGRpbikiCm1zZ3N0ciAiKHN0YW5kYXJkc2lzZW5kKSIKCiMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgcGFydCBvZiBhbiBlcnJvciBtZXNzYWdlLgojLiBJdCBpcyBmb2xsb3dlZCBieSBhIGNvbG9uIGFuZCBhIGRldGFpbCBtZXNzYWdlLgojLiBUaGUgJXMgcGxhY2Vob2xkZXIgZXhwYW5kcyB0byB0aGUgaW5wdXQgZmlsZSBuYW1lLgojOiBzcmMvaWNvbnYuYzoxMTE2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlcyIKbXNnc3RyICIlcyIKCiMuIFRSQU5TTEFUT1JTOiBBbiBlcnJvciBtZXNzYWdlLgojOiBzcmMvaWNvbnYuYzoxMTMwCiMsIGMtZm9ybWF0Cm1zZ2lkICJJL08gZXJyb3IiCm1zZ3N0ciAiUy9WIHZpZ2EiCgojfiBtc2dpZCAiUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1nbnUtbGliaWNvbnZAZ251Lm9yZz4uXG4iCiN+IG1zZ3N0ciAiVmlnYWRlc3QgdGVhdGFnZSBwYWx1biBhYWRyZXNzaWwgPGJ1Zy1nbnUtbGliaWNvbnZAZ251Lm9yZz4uXG4iCg==