IyBzZWQgZ2VybWFuIHRyYW5zbGF0aW9uCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIHNlZCBwYWNrYWdlLgojIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBXYWx0ZXIgS29jaCA8a29jaEB1MzIuZGU+LCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA5Cm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBzZWQgNC4yLjBcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LXV0aWxzQGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEyLTEyLTIyIDE0OjM2KzAxMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDktMDUtMDEgMTI6NTQrMDIwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBXYWx0ZXIgS29jaCA8a29jaEB1MzIuZGU+XG4iCiJMYW5ndWFnZS1UZWFtOiBHZXJtYW4gPHRyYW5zbGF0aW9uLXRlYW0tZGVAbGlzdHMuc291cmNlZm9yZ2UubmV0PlxuIgoiTGFuZ3VhZ2U6IGRlXG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgoKIzogc2VkL2NvbXBpbGUuYzoxNDQKbXNnaWQgIm11bHRpcGxlIGAhJ3MiCm1zZ3N0ciAiTWVocmZhY2hlIGAhJyIKCiM6IHNlZC9jb21waWxlLmM6MTQ1Cm1zZ2lkICJ1bmV4cGVjdGVkIGAsJyIKbXNnc3RyICJVbmVyd2FydGV0ZXMgYCwnIgoKIzogc2VkL2NvbXBpbGUuYzoxNDYKbXNnaWQgImludmFsaWQgdXNhZ2Ugb2YgK04gb3Igfk4gYXMgZmlyc3QgYWRkcmVzcyIKbXNnc3RyICIrTiBvZGVyIH5OIGv2bm5lbiBuaWNodCBhbHMgZXJzdGUgQWRyZXNzZSBiZW51dHp0IHdlcmRlbiIKCiM6IHNlZC9jb21waWxlLmM6MTQ3Cm1zZ2lkICJ1bm1hdGNoZWQgYHsnIgptc2dzdHIgIk5pY2h0IHBhYXJ3ZWlzZXMgYHsnIgoKIzogc2VkL2NvbXBpbGUuYzoxNDgKbXNnaWQgInVuZXhwZWN0ZWQgYH0nIgptc2dzdHIgIlVuZXJ3YXJ0ZXRlcyBgfSciCgojOiBzZWQvY29tcGlsZS5jOjE0OQptc2dpZCAiZXh0cmEgY2hhcmFjdGVycyBhZnRlciBjb21tYW5kIgptc2dzdHIgIlp1c+R0emxpY2hlIFplaWNoZW4gbmFjaCBkZW0gQmVmZWhsIgoKIzogc2VkL2NvbXBpbGUuYzoxNTAKbXNnaWQgImV4cGVjdGVkIFxcIGFmdGVyIGBhJywgYGMnIG9yIGBpJyIKbXNnc3RyICJOYWNoIGBhJywgYGMnIG9kZXIgYGknIHdpcmQgXFwgZXJ3YXJ0ZXQiCgojOiBzZWQvY29tcGlsZS5jOjE1MQptc2dpZCAiYH0nIGRvZXNuJ3Qgd2FudCBhbnkgYWRkcmVzc2VzIgptc2dzdHIgImB9JyBlcndhcnRldCBrZWluZSBBZHJlc3NlbiIKCiM6IHNlZC9jb21waWxlLmM6MTUyCm1zZ2lkICI6IGRvZXNuJ3Qgd2FudCBhbnkgYWRkcmVzc2VzIgptc2dzdHIgImA6JyBlcndhcnRldCBrZWluZSBBZHJlc3NlbiIKCiM6IHNlZC9jb21waWxlLmM6MTUzCm1zZ2lkICJjb21tZW50cyBkb24ndCBhY2NlcHQgYW55IGFkZHJlc3NlcyIKbXNnc3RyICJLb21tZW50YXJlIGVybGF1YmVuIGtlaW5lIEFkcmVzc2VuIgoKIzogc2VkL2NvbXBpbGUuYzoxNTQKbXNnaWQgIm1pc3NpbmcgY29tbWFuZCIKbXNnc3RyICJGZWhsZW5kZXIgQmVmZWhsIgoKIzogc2VkL2NvbXBpbGUuYzoxNTUKbXNnaWQgImNvbW1hbmQgb25seSB1c2VzIG9uZSBhZGRyZXNzIgptc2dzdHIgIkJlZmVobCB2ZXJ3ZW5kZXQgbnVyIGVpbmUgQWRyZXNzZSIKCiM6IHNlZC9jb21waWxlLmM6MTU2Cm1zZ2lkICJ1bnRlcm1pbmF0ZWQgYWRkcmVzcyByZWdleCIKbXNnc3RyICJOaWNodCBiZWVuZGV0ZXIgcmVndWzkcmVyIEFkcmVzc2F1c2RydWNrIgoKIzogc2VkL2NvbXBpbGUuYzoxNTcKbXNnaWQgInVudGVybWluYXRlZCBgcycgY29tbWFuZCIKbXNnc3RyICJOaWNodCBiZWVuZGV0ZXIgYHMnLUJlZmVobCIKCiM6IHNlZC9jb21waWxlLmM6MTU4Cm1zZ2lkICJ1bnRlcm1pbmF0ZWQgYHknIGNvbW1hbmQiCm1zZ3N0ciAiTmljaHQgYmVlbmRldGVyIGB5Jy1CZWZlaGwiCgojOiBzZWQvY29tcGlsZS5jOjE1OQptc2dpZCAidW5rbm93biBvcHRpb24gdG8gYHMnIgptc2dzdHIgIlVuYmVrYW5udGUgT3B0aW9uIGb8ciBgcyciCgojOiBzZWQvY29tcGlsZS5jOjE2MAptc2dpZCAibXVsdGlwbGUgYHAnIG9wdGlvbnMgdG8gYHMnIGNvbW1hbmQiCm1zZ3N0ciAiTWVocmVyZSAncCctT3B0aW9uZW4gYW0gYHMnLUJlZmVobCIKCiM6IHNlZC9jb21waWxlLmM6MTYxCm1zZ2lkICJtdWx0aXBsZSBgZycgb3B0aW9ucyB0byBgcycgY29tbWFuZCIKbXNnc3RyICJNZWhyZXJlICdnJy1PcHRpb25lbiBhbSBgcyctQmVmZWhsIgoKIzogc2VkL2NvbXBpbGUuYzoxNjIKbXNnaWQgIm11bHRpcGxlIG51bWJlciBvcHRpb25zIHRvIGBzJyBjb21tYW5kIgptc2dzdHIgIk1laHJlcmUgbnVtZXJpc2NoZSBPcHRpb25lbiBhbSBgcyctQmVmZWhsIgoKIzogc2VkL2NvbXBpbGUuYzoxNjMKbXNnaWQgIm51bWJlciBvcHRpb24gdG8gYHMnIGNvbW1hbmQgbWF5IG5vdCBiZSB6ZXJvIgptc2dzdHIgIk51bWVyaXNjaGUgT3B0aW9uIGFtIGBzJy1CZWZlaGwga2FubiBuaWNodCBOdWxsIHNlaW4iCgojOiBzZWQvY29tcGlsZS5jOjE2NAptc2dpZCAic3RyaW5ncyBmb3IgYHknIGNvbW1hbmQgYXJlIGRpZmZlcmVudCBsZW5ndGhzIgptc2dzdHIgIlVudGVyc2NoaWVkbGljaGUgTORuZ2UgZGVyIFplaWNoZW5rZXR0ZW4gZGVzIGB5Jy1CZWZlaGxzIgoKIzogc2VkL2NvbXBpbGUuYzoxNjUKbXNnaWQgImRlbGltaXRlciBjaGFyYWN0ZXIgaXMgbm90IGEgc2luZ2xlLWJ5dGUgY2hhcmFjdGVyIgptc2dzdHIgIlRyZW5uemVpY2hlbiBpc3Qga2VpbiBFaW56ZWxieXRlemVpY2hlbiIKCiM6IHNlZC9jb21waWxlLmM6MTY2Cm1zZ2lkICJleHBlY3RlZCBuZXdlciB2ZXJzaW9uIG9mIHNlZCIKbXNnc3RyICJOZXVlcmUgVmVyc2lvbiB2b24gc2VkIGVyd2FydGV0IgoKIzogc2VkL2NvbXBpbGUuYzoxNjcKbXNnaWQgImludmFsaWQgdXNhZ2Ugb2YgbGluZSBhZGRyZXNzIDAiCm1zZ3N0ciAiVW5n/Gx0aWdlIFZlcndlbmR1bmcgZGVyIFplaWxlbmFkcmVzc2UgMCIKCiM6IHNlZC9jb21waWxlLmM6MTY4CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmtub3duIGNvbW1hbmQ6IGAlYyciCm1zZ3N0ciAiVW5iZWthbm50ZXIgQmVmZWhsOiBgJWMnIgoKIzogc2VkL2NvbXBpbGUuYzoxNjkKIywgZnV6enkKbXNnaWQgImluY29tcGxldGUgY29tbWFuZCIKbXNnc3RyICJGZWhsZW5kZXIgQmVmZWhsIgoKIzogc2VkL2NvbXBpbGUuYzoxOTIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlICVzIGxpbmUgJWx1OiAlc1xuIgptc2dzdHIgIiVzOiBEYXRlaSAlcyBaZWlsZSAlbHU6ICVzXG4iCgojOiBzZWQvY29tcGlsZS5jOjE5NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IC1lIGV4cHJlc3Npb24gIyVsdSwgY2hhciAlbHU6ICVzXG4iCm1zZ3N0ciAiJXM6IC1lIEF1c2RydWNrICMlbHUsIFplaWNoZW4gJWx1OiAlc1xuIgoKIzogc2VkL2NvbXBpbGUuYzoxNjU3CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW4ndCBmaW5kIGxhYmVsIGZvciBqdW1wIHRvIGAlcyciCm1zZ3N0ciAiS2FubiBkaWUgWmllbG1hcmtlIGb8ciBkZW4gU3BydW5nIHp1IGAlcycgbmljaHQgZmluZGVuIgoKIzogc2VkL2V4ZWN1dGUuYzo1OTUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW4ndCByZWFkICVzOiAlc1xuIgptc2dzdHIgIiVzOiBrYW5uICVzIG5pY2h0IGxlc2VuOiAlc1xuIgoKIzogc2VkL2V4ZWN1dGUuYzo2MjQKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IGVkaXQgJXM6IGlzIGEgdGVybWluYWwiCm1zZ3N0ciAiS2FubiAlcyBuaWNodCBiZWFyYmVpdGVuOiBEYXMgaXN0IGVpbiBUZXJtaW5hbCIKCiM6IHNlZC9leGVjdXRlLmM6NjI5CiMsIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCBlZGl0ICVzOiBub3QgYSByZWd1bGFyIGZpbGUiCm1zZ3N0ciAiS2FubiAlcyBuaWNodCBiZWFyYmVpdGVuOiBEYXMgaXN0IGtlaW5lIG5vcm1hbGUgRGF0ZWkiCgojOiBzZWQvZXhlY3V0ZS5jOjY0MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHdhcm5pbmc6IGZhaWxlZCB0byBzZXQgZGVmYXVsdCBmaWxlIGNyZWF0aW9uIGNvbnRleHQgdG8gJXM6ICVzIgptc2dzdHIgIiIKCiM6IHNlZC9leGVjdXRlLmM6NjQ3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogd2FybmluZzogZmFpbGVkIHRvIGdldCBzZWN1cml0eSBjb250ZXh0IG9mICVzOiAlcyIKbXNnc3RyICIiCgojOiBzZWQvZXhlY3V0ZS5jOjY2NCBzZWQvdXRpbHMuYzoyMTEKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IG9wZW4gdGVtcG9yYXJ5IGZpbGUgJXM6ICVzIgptc2dzdHIgIkthbm4gdGVtcG9y5HJlIERhdGVpICVzIG5pY2h0IPZmZm5lbjogJXMiCgojOiBzZWQvZXhlY3V0ZS5jOjExOTMgc2VkL2V4ZWN1dGUuYzoxMzczCm1zZ2lkICJlcnJvciBpbiBzdWJwcm9jZXNzIgptc2dzdHIgIkZlaGxlciBpbSBVbnRlcnByb3plc3MiCgojOiBzZWQvZXhlY3V0ZS5jOjExOTUKbXNnaWQgIm9wdGlvbiBgZScgbm90IHN1cHBvcnRlZCIKbXNnc3RyICJPcHRpb24gYGUnIHdpcmQgbmljaHQgdW50ZXJzdPx0enQiCgojOiBzZWQvZXhlY3V0ZS5jOjEzNzUKbXNnaWQgImBlJyBjb21tYW5kIG5vdCBzdXBwb3J0ZWQiCm1zZ3N0ciAiYGUnLUtvbW1hbmRvIHdpcmQgbmljaHQgdW50ZXJzdPx0enQiCgojOiBzZWQvZXhlY3V0ZS5jOjE3MjUKbXNnaWQgIm5vIGlucHV0IGZpbGVzIgptc2dzdHIgIktlaW5lIEVpbmdhYmVkYXRlaWVuIgoKIzogc2VkL3JlZ2V4cC5jOjM5Cm1zZ2lkICJubyBwcmV2aW91cyByZWd1bGFyIGV4cHJlc3Npb24iCm1zZ3N0ciAiS2VpbiB2b3JoZXJpZ2VyIHJlZ3Vs5HJlciBBdXNkcnVjayIKCiM6IHNlZC9yZWdleHAuYzo0MAptc2dpZCAiY2Fubm90IHNwZWNpZnkgbW9kaWZpZXJzIG9uIGVtcHR5IHJlZ2V4cCIKbXNnc3RyICJG/HIgbGVlcmUgcmVndWzkcmUgQXVzZHL8Y2tlIGv2bm5lbiBrZWluZSBgbW9kaWZpZXInIGFuZ2VnZWJlbiB3ZXJkZW4iCgojOiBzZWQvcmVnZXhwLmM6MTI5CiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIHJlZmVyZW5jZSBcXCVkIG9uIGBzJyBjb21tYW5kJ3MgUkhTIgptc2dzdHIgIlVuZ/xsdGlnZXIgVmVyd2VpcyBcXCVkIGltIHJlY2h0ZW4gVGVpbCAoYFJIUycpIGRlcyBgcyctQmVmZWhscyIKCiM6IHNlZC9zZWQuYzozMgptc2dpZCAiSmF5IEZlbmxhc29uIgptc2dzdHIgIiIKCiM6IHNlZC9zZWQuYzozMwptc2dpZCAiVG9tIExvcmQiCm1zZ3N0ciAiIgoKIzogc2VkL3NlZC5jOjM0Cm1zZ2lkICJLZW4gUGl6emluaSIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MzUKbXNnaWQgIlBhb2xvIEJvbnppbmkiCm1zZ3N0ciAiIgoKIzogc2VkL3NlZC5jOjc5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJHTlUgc2VkIGhvbWUgcGFnZTogPGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9zZWQvPi5cbiIKIkdlbmVyYWwgaGVscCB1c2luZyBHTlUgc29mdHdhcmU6IDxodHRwOi8vd3d3LmdudS5vcmcvZ2V0aGVscC8+LlxuIgptc2dzdHIgIiIKIkdOVS1zZWQtSG9tZXBhZ2U6IDxodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvc2VkLz4uXG4iCiJBbGxnZW1laW5lIEhpbGZlIHp1IEdOVS1Tb2Z0d2FyZTogPGh0dHA6Ly93d3cuZ251Lm9yZy9nZXRoZWxwLz4uXG4iCgojOiBzZWQvc2VkLmM6ODYKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIiCiJFLW1haWwgYnVnIHJlcG9ydHMgdG86IDwlcz4uXG4iCiJCZSBzdXJlIHRvIGluY2x1ZGUgdGhlIHdvcmQgYGAlcycnIHNvbWV3aGVyZSBpbiB0aGUgYGBTdWJqZWN0OicnIGZpZWxkLlxuIgptc2dzdHIgIiIKIkZlaGxlcmJlcmljaHRlIGJpdHRlIHBlciBFLU1haWwgKGF1ZiBlbmdsaXNjaCkgYW46IDwlcz4uXG4iCiJWZXJ3ZW5kZW4gU2llIGRhYmVpIGRlbiBCZWdyaWZmIGAlcycgaXJnZW5kd28gaW4gZGVyIGBCZXRyZWZmOictWmVpbGUuXG4iCiJTaW5uLSBvZGVyIFNjaHJlaWJmZWhsZXIgaW4gZGVuIGRldXRzY2hlbiBUZXh0ZW4gYml0dGUgYW4gPGRlQGxpLm9yZz4uXG4iCgojOiBzZWQvc2VkLmM6OTkKbXNnaWQgIiIKIiAgLVIsIC0tcmVnZXhwLXBlcmxcbiIKIiAgICAgICAgICAgICAgICAgdXNlIFBlcmwgNSdzIHJlZ3VsYXIgZXhwcmVzc2lvbnMgc3ludGF4IGluIHRoZSBzY3JpcHQuXG4iCm1zZ3N0ciAiIgoiICAtUiwgLS1yZWdleHAtcGVybFxuIgoiICAgICAgICAgICAgICAgICBWZXJ3ZW5kZSBkaWUgUGVybC01LVN5bnRheCBm/HIgcmVnLiBBdXNkcvxja2UgaW0gU2tyaXB0LlxuIgoKIzogc2VkL3NlZC5jOjEwNAojLCBjLWZvcm1hdAptc2dpZCAiIgoiVXNhZ2U6ICVzIFtPUFRJT05dLi4uIHtzY3JpcHQtb25seS1pZi1uby1vdGhlci1zY3JpcHR9IFtpbnB1dC1maWxlXS4uLlxuIgoiXG4iCm1zZ3N0ciAiIgoiQXVmcnVmOiAlcyBbT1BUSU9OXS4uLiB7U2tyaXB0LWZhbGxzLWtlaW4tYW5kZXJlcy1Ta3JpcHR9IFtFaW5nYWJlLSIKIkRhdGVpXS4uLlxuIgoiXG4iCgojOiBzZWQvc2VkLmM6MTA4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1uLCAtLXF1aWV0LCAtLXNpbGVudFxuIgoiICAgICAgICAgICAgICAgICBzdXBwcmVzcyBhdXRvbWF0aWMgcHJpbnRpbmcgb2YgcGF0dGVybiBzcGFjZVxuIgptc2dzdHIgIiIKIiAgLW4sIC0tcXVpZXQsIC0tc2lsZW50XG4iCiIgICAgICAgICAgICAgICAgIHZlcmhpbmRlcnQgZGllIGF1dG9tYXRpc2NoZSBBdXNnYWJlIGRlcyBBcmJlaXRzcHVmZmVyc1xuIgoKIzogc2VkL3NlZC5jOjExMAojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtZSBzY3JpcHQsIC0tZXhwcmVzc2lvbj1zY3JpcHRcbiIKIiAgICAgICAgICAgICAgICAgYWRkIHRoZSBzY3JpcHQgdG8gdGhlIGNvbW1hbmRzIHRvIGJlIGV4ZWN1dGVkXG4iCm1zZ3N0ciAiIgoiICAtZSBza3JpcHQsIC0tZXhwcmVzc2lvbj1za3JpcHRcbiIKIiAgICAgICAgICAgICAgICAgaORuZ3QgYHNrcmlwdCcgYW4gZGllIGF1c3p1ZvxocmVuZGVuIEJlZmVobGUgYW5cbiIKCiM6IHNlZC9zZWQuYzoxMTIKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLWYgc2NyaXB0LWZpbGUsIC0tZmlsZT1zY3JpcHQtZmlsZVxuIgoiICAgICAgICAgICAgICAgICBhZGQgdGhlIGNvbnRlbnRzIG9mIHNjcmlwdC1maWxlIHRvIHRoZSBjb21tYW5kcyB0byBiZSAiCiJleGVjdXRlZFxuIgptc2dzdHIgIiIKIiAgLWYgc2tyaXB0LURhdGVpLCAtLWZpbGU9c2tyaXB0LURhdGVpXG4iCiIgICAgICAgICAgICAgICAgIGjkbmd0IGRlbiBJbmhhbHQgdm9uIGBTa3JpcHQtRGF0ZWknIGFuIGRpZVxuIgoiICAgICAgICAgICAgICAgICBhdXN6dWb8aHJlbmRlbiBCZWZlaGxlIGFuXG4iCgojOiBzZWQvc2VkLmM6MTE1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC0tZm9sbG93LXN5bWxpbmtzXG4iCiIgICAgICAgICAgICAgICAgIGZvbGxvdyBzeW1saW5rcyB3aGVuIHByb2Nlc3NpbmcgaW4gcGxhY2VcbiIKbXNnc3RyICIiCiIgIC0tZm9sbG93LXN5bWxpbmtzXG4iCiIgICAgICAgICAgICAgICAgIHN5bWJvbGlzY2hlbiBWZXJrbvxwZnVuZ2VuIGJlaSBWZXJ3ZW5kdW5nIHZvbiAtaSBmb2xnZW5cbiIKCiM6IHNlZC9zZWQuYzoxMTgKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1pW1NVRkZJWF0sIC0taW4tcGxhY2VbPVNVRkZJWF1cbiIKIiAgICAgICAgICAgICAgICAgZWRpdCBmaWxlcyBpbiBwbGFjZSAobWFrZXMgYmFja3VwIGlmIFNVRkZJWCBzdXBwbGllZClcbiIKbXNnc3RyICIiCiIgIC1pW1N1ZmZpeF0sIC0taW4tcGxhY2VbPVN1ZmZpeF1cbiIKIiAgICAgICAgICAgICAgICAg5G5kZXJ0IGRpZSBFaW5nYWJlZGF0ZWkgKEJhY2t1cCB3aXJkIGVyemV1Z3QsIGZhbGxzIFN1ZmZpeFxuIgoiICAgICAgICAgICAgICAgICBhbmdlZ2ViZW4gd3VyZGUpXG4iCgojOiBzZWQvc2VkLmM6MTIxCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1iLCAtLWJpbmFyeVxuIgoiICAgICAgICAgICAgICAgICBvcGVuIGZpbGVzIGluIGJpbmFyeSBtb2RlIChDUitMRnMgYXJlIG5vdCBwcm9jZXNzZWQgIgoic3BlY2lhbGx5KVxuIgptc2dzdHIgIiIKIiAgLWIsIC0tYmluYXJ5XG4iCiIgICAgICAgICAgICAgICAgIPZmZm5ldCBEYXRlaWVuIGJpbuRyIChDUitMRnMgd2VyZGVuIG5pY2h0IGJlc29uZGVycyAiCiJiZWhhbmRlbHQpXG4iCgojOiBzZWQvc2VkLmM6MTI0CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1sIE4sIC0tbGluZS1sZW5ndGg9TlxuIgoiICAgICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBkZXNpcmVkIGxpbmUtd3JhcCBsZW5ndGggZm9yIHRoZSBgbCcgY29tbWFuZFxuIgptc2dzdHIgIiIKIiAgLWwgTiwgLS1saW5lLWxlbmd0aD1OXG4iCiIgICAgICAgICAgICAgICAgIGdpYnQgZGllIGdld/xuc2NodGUgWmVpbGVudW1icnVjaGzkbmdlIGb8ciBkZW4gYGwnLUJlZmVobCAiCiJhblxuIgoKIzogc2VkL3NlZC5jOjEyNgojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtLXBvc2l4XG4iCiIgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIEdOVSBleHRlbnNpb25zLlxuIgptc2dzdHIgIiIKIiAgLS1wb3NpeFxuIgoiICAgICAgICAgICAgICAgICBzY2hhbHRldCBhbGxlIEdOVS1GdW5rdGlvbnMtRXJ3ZWl0ZXJ1bmdlbiBhYi5cbiIKCiM6IHNlZC9zZWQuYzoxMjgKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXIsIC0tcmVnZXhwLWV4dGVuZGVkXG4iCiIgICAgICAgICAgICAgICAgIHVzZSBleHRlbmRlZCByZWd1bGFyIGV4cHJlc3Npb25zIGluIHRoZSBzY3JpcHQuXG4iCm1zZ3N0ciAiIgoiICAtciwgLS1yZWdleHAtZXh0ZW5kZWRcbiIKIiAgICAgICAgICAgICAgICAgdmVyd2VuZGV0IGRpZSBlcndlaXRlcnRlbiByZWcuIEF1c2Ry/GNrZSBm/HIgZGFzIFNrcmlwdC5cbiIKCiM6IHNlZC9zZWQuYzoxMzMKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXMsIC0tc2VwYXJhdGVcbiIKIiAgICAgICAgICAgICAgICAgY29uc2lkZXIgZmlsZXMgYXMgc2VwYXJhdGUgcmF0aGVyIHRoYW4gYXMgYSBzaW5nbGUgIgoiY29udGludW91c1xuIgoiICAgICAgICAgICAgICAgICBsb25nIHN0cmVhbS5cbiIKbXNnc3RyICIiCiIgIC1zLCAtLXNlcGFyYXRlXG4iCiIgICAgICAgICAgICAgICAgIGRpZSBEYXRlaWVuIHdlcmRlbiBnZXRyZW5udCB1bmQgbmljaHQgYWxzIGVpbnppZ2VcbiIKIiAgICAgICAgICAgICAgICAgenVzYW1tZW5o5G5nZW5kZSBRdWVsbGUgYmV0cmFjaHRldC5cbiIKCiM6IHNlZC9zZWQuYzoxMzYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXUsIC0tdW5idWZmZXJlZFxuIgoiICAgICAgICAgICAgICAgICBsb2FkIG1pbmltYWwgYW1vdW50cyBvZiBkYXRhIGZyb20gdGhlIGlucHV0IGZpbGVzIGFuZCAiCiJmbHVzaFxuIgoiICAgICAgICAgICAgICAgICB0aGUgb3V0cHV0IGJ1ZmZlcnMgbW9yZSBvZnRlblxuIgptc2dzdHIgIiIKIiAgLXUsIC0tdW5idWZmZXJlZFxuIgoiICAgICAgICAgICAgICAgICBsYWRlIG51ciBrbGVpbnN0ZSBEYXRlbm1lbmdlbiBhdXMgZGVuIEVpbmdhYmVkYXRlaWVuXG4iCiIgICAgICAgICAgICAgICAgIHVuZCBzY2hyZWliZSBkaWUgQXVzZ2FiZXB1ZmZlciBo5HVmaWdlciB6dXL8Y2suXG4iCgojOiBzZWQvc2VkLmM6MTM5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC16LCAtLW51bGwtZGF0YVxuIgoiICAgICAgICAgICAgICAgICBzZXBhcmF0ZSBsaW5lcyBieSBOVUwgY2hhcmFjdGVyc1xuIgptc2dzdHIgIiIKCiM6IHNlZC9zZWQuYzoxNDEKIywgYy1mb3JtYXQKbXNnaWQgIiAgICAgIC0taGVscCAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXRcbiIKbXNnc3RyICIgICAgICAtLWhlbHAgICAgIG51ciBkaWVzZSBIaWxmZSBhbnplaWdlbiB1bmQgZGFubiBiZWVuZGVuXG4iCgojOiBzZWQvc2VkLmM6MTQyCiMsIGMtZm9ybWF0Cm1zZ2lkICIgICAgICAtLXZlcnNpb24gIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0XG4iCm1zZ3N0ciAiICAgICAgLS12ZXJzaW9uICBudXIgZGllIFZlcnNpb25zaW5mbyBhdXNnZWJlbiB1bmQgZGFubiBiZWVuZGVuXG4iCgojOiBzZWQvc2VkLmM6MTQzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIklmIG5vIC1lLCAtLWV4cHJlc3Npb24sIC1mLCBvciAtLWZpbGUgb3B0aW9uIGlzIGdpdmVuLCB0aGVuIHRoZSBmaXJzdFxuIgoibm9uLW9wdGlvbiBhcmd1bWVudCBpcyB0YWtlbiBhcyB0aGUgc2VkIHNjcmlwdCB0byBpbnRlcnByZXQuICBBbGxcbiIKInJlbWFpbmluZyBhcmd1bWVudHMgYXJlIG5hbWVzIG9mIGlucHV0IGZpbGVzOyBpZiBubyBpbnB1dCBmaWxlcyBhcmVcbiIKInNwZWNpZmllZCwgdGhlbiB0aGUgc3RhbmRhcmQgaW5wdXQgaXMgcmVhZC5cbiIKIlxuIgptc2dzdHIgIiIKIlxuIgoiRmFsbHMga2VpbiAtZSwgLS1leHByZXNzaW9uLCAtZiBvZGVyIC0tZmlsZSBhbHMgT3B0aW9uIGFuZ2VnZWJlbiBpc3QsIFxuIgoid2lyZCBkYXMgZXJzdGUgQXJndW1lbnQsIGRhcyBrZWluZSBPcHRpb24gaXN0IGFscyBzZWQtU2tyaXB0IHZlcndlbmRldC5cbiIKIkFsbGUgcmVzdGxpY2hlbiBBcmd1bWVudGUgd2VyZGVuIGFscyBFaW5nYWJlZGF0ZWluYW1lbiBiZWhhbmRlbHQuXG4iCiJGYWxscyBrZWluZSBFaW5nYWJlZGF0ZWllbiBhbmdlZ2ViZW4gc2luZCwgd2lyZCB2b24gZGVyIFN0YW5kYXJkZWluZ2FiZSAiCiJnZWxlc2VuLlxuIgoiXG4iCgojOiBzZWQvdXRpbHMuYzo3NCBzZWQvdXRpbHMuYzo0MzIKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCByZW1vdmUgJXM6ICVzIgptc2dzdHIgIiVzIGthbm4gbmljaHQgZW50ZmVybnQgd2VyZGVuOiAlcyIKCiM6IHNlZC91dGlscy5jOjE0NAojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3Qgb3BlbiBmaWxlICVzOiAlcyIKbXNnc3RyICJEYXRlaSAlcyBrYW5uIG5pY2h0IGdl9mZmbmV0IHdlcmRlbjogJXMiCgojOiBzZWQvdXRpbHMuYzoxNjcKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IGF0dGFjaCB0byAlczogJXMiCm1zZ3N0ciAiS2FubiBuaWNodCBpbiAlcyBlaW5rbGlua2VuOiAlcyIKCiM6IHNlZC91dGlscy5jOjIyOQojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3Qgd3JpdGUgJWQgaXRlbSB0byAlczogJXMiCm1zZ2lkX3BsdXJhbCAiY291bGRuJ3Qgd3JpdGUgJWQgaXRlbXMgdG8gJXM6ICVzIgptc2dzdHJbMF0gIkthbm4gJWQgRWxlbWVudCBuaWNodCBhdWYgJXMgc2NocmVpYmVuOiAlcyIKbXNnc3RyWzFdICJLYW5uICVkIEVsZW1lbnRlIG5pY2h0IGF1ZiAlcyBzY2hyZWliZW46ICVzIgoKIzogc2VkL3V0aWxzLmM6MjQ0IHNlZC91dGlscy5jOjI2NwojLCBjLWZvcm1hdAptc2dpZCAicmVhZCBlcnJvciBvbiAlczogJXMiCm1zZ3N0ciAiTGVzZWZlaGxlciBpbiAlczogJXMiCgojOiBzZWQvdXRpbHMuYzozNzIKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IGZvbGxvdyBzeW1saW5rICVzOiAlcyIKbXNnc3RyICJTeW1ib2xpc2NoZW0gTGluayAlcyBrYW5uIG5pY2h0IGdlZm9sZ3Qgd2VyZGVuOiAlcyIKCiM6IHNlZC91dGlscy5jOjQwNgojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IHN0YXQgJXM6ICVzIgptc2dzdHIgIlN0YXR1c2VybWl0dGx1bmcgdm9uICVzIHNjaGx1ZyBmZWhsOiAlcyIKCiM6IHNlZC91dGlscy5jOjQzNwojLCBjLWZvcm1hdAptc2dpZCAiY2Fubm90IHJlbmFtZSAlczogJXMiCm1zZ3N0ciAiJXMga2FubiBuaWNodCB1bWJlbmFubnQgd2VyZGVuOiAlcyIKCiM6IGxpYi9yZWdjb21wLmM6MTMyCm1zZ2lkICJTdWNjZXNzIgptc2dzdHIgIkVyZm9sZ3JlaWNoIgoKIzogbGliL3JlZ2NvbXAuYzoxMzUKbXNnaWQgIk5vIG1hdGNoIgptc2dzdHIgIktlaW5lINxiZXJlaW5zdGltbXVuZyIKCiM6IGxpYi9yZWdjb21wLmM6MTM4Cm1zZ2lkICJJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbiIKbXNnc3RyICJVbmf8bHRpZ2VyIHJlZ3Vs5HJlciBBdXNkcnVjayIKCiM6IGxpYi9yZWdjb21wLmM6MTQxCm1zZ2lkICJJbnZhbGlkIGNvbGxhdGlvbiBjaGFyYWN0ZXIiCm1zZ3N0ciAiVW5n/Gx0aWdlcyBWZXJnbGVpY2hzemVpY2hlbiIKCiM6IGxpYi9yZWdjb21wLmM6MTQ0Cm1zZ2lkICJJbnZhbGlkIGNoYXJhY3RlciBjbGFzcyBuYW1lIgptc2dzdHIgIlVuZ/xsdGlnZXIgWmVpY2hlbmtsYXNzZW5uYW1lIgoKIzogbGliL3JlZ2NvbXAuYzoxNDcKbXNnaWQgIlRyYWlsaW5nIGJhY2tzbGFzaCIKbXNnc3RyICJBYnNjaGxpZd9lbmRlciBCYWNrc2xhc2giCgojOiBsaWIvcmVnY29tcC5jOjE1MAptc2dpZCAiSW52YWxpZCBiYWNrIHJlZmVyZW5jZSIKbXNnc3RyICJVbmf8bHRpZ2VyIFL8Y2t2ZXJ3ZWlzIgoKIzogbGliL3JlZ2NvbXAuYzoxNTMKbXNnaWQgIlVubWF0Y2hlZCBbIG9yIFteIgptc2dzdHIgIk5pY2h0IHBhYXJ3ZWlzZXMgWyBiencuIFteIgoKIzogbGliL3JlZ2NvbXAuYzoxNTYKbXNnaWQgIlVubWF0Y2hlZCAoIG9yIFxcKCIKbXNnc3RyICJOaWNodCBwYWFyd2Vpc2VzICggYnp3LiBcXCgiCgojOiBsaWIvcmVnY29tcC5jOjE1OQptc2dpZCAiVW5tYXRjaGVkIFxceyIKbXNnc3RyICJOaWNodCBwYWFyd2Vpc2VzIFxceyIKCiM6IGxpYi9yZWdjb21wLmM6MTYyCm1zZ2lkICJJbnZhbGlkIGNvbnRlbnQgb2YgXFx7XFx9Igptc2dzdHIgIlVuZ/xsdGlnZXIgSW5oYWx0IGluIFxce1xcfSIKCiM6IGxpYi9yZWdjb21wLmM6MTY1Cm1zZ2lkICJJbnZhbGlkIHJhbmdlIGVuZCIKbXNnc3RyICJVbmf8bHRpZ2VzIEJlcmVpY2hlbmRlIgoKIzogbGliL3JlZ2NvbXAuYzoxNjgKbXNnaWQgIk1lbW9yeSBleGhhdXN0ZWQiCm1zZ3N0ciAiU3BlaWNoZXIgZXJzY2j2cGZ0IgoKIzogbGliL3JlZ2NvbXAuYzoxNzEKbXNnaWQgIkludmFsaWQgcHJlY2VkaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbiIKbXNnc3RyICJWb3JoZXJpZ2VyIHJlZ3Vs5HJlciBBdXNkcnVjayBpc3QgdW5n/Gx0aWciCgojOiBsaWIvcmVnY29tcC5jOjE3NAptc2dpZCAiUHJlbWF0dXJlIGVuZCBvZiByZWd1bGFyIGV4cHJlc3Npb24iCm1zZ3N0ciAiUmVndWzkcmVyIEF1c2RydWNrIGVuZGV0IHp1IGZy/GgiCgojOiBsaWIvcmVnY29tcC5jOjE3Nwptc2dpZCAiUmVndWxhciBleHByZXNzaW9uIHRvbyBiaWciCm1zZ3N0ciAiUmVndWzkcmVyIEF1c2RydWNrIGlzdCB6dSBncm/fIgoKIzogbGliL3JlZ2NvbXAuYzoxODAKbXNnaWQgIlVubWF0Y2hlZCApIG9yIFxcKSIKbXNnc3RyICJOaWNodCBwYWFyd2Vpc2VzICkgYnp3LiBcXCkiCgojOiBsaWIvcmVnY29tcC5jOjcwNQptc2dpZCAiTm8gcHJldmlvdXMgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIktlaW4gdm9yaGVyaWdlciByZWd1bORyZXIgQXVzZHJ1Y2siCgojfiBtc2dpZCAic3VwZXItc2VkIHZlcnNpb24gJXNcbiIKI34gbXNnc3RyICJTdXBlci1zZWQgdmVyc2lvbiAlc1xuIgoKI34gbXNnaWQgIiIKI34gImJhc2VkIG9uIEdOVSBzZWQgdmVyc2lvbiAlc1xuIgojfiAiXG4iCiN+IG1zZ3N0ciAiIgojfiAiYmFzaWVydCBhdWYgR05VLXNlZC1WZXJzaW9uICVzXG4iCiN+ICJcbiIKCiN+IG1zZ2lkICJHTlUgc2VkIHZlcnNpb24gJXNcbiIKI34gbXNnc3RyICJHTlUtc2VkLVZlcnNpb24gJXNcbiIKCiN+IG1zZ2lkICIiCiN+ICIlc1xuIgojfiAiVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgIgojfiAiTk9cbiIKI34gIndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiAiCiN+ICJQVVJQT1NFLFxuIgojfiAidG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3LlxuIgojfiBtc2dzdHIgIiIKI34gIiVzXG4iCiN+ICIoRGVyIGZvbGdlbmRlIFRleHQgaXN0IGVpbmUgbmljaHQg/GJlcnBy/GZ0ZSDcYmVyc2V0enVuZywgZGllIHp1clxuIgojfiAiIEluZm9ybWF0aW9uIGRpZW50OyBpbiByZWNodGxpY2hlbiBGcmFnZW4gaXN0IGltbWVyIGRhcyBlbmdsaXNjaGVcbiIKI34gIiBPcmlnaW5hbCBhdXNzY2hsYWdnZWJlbmQpXG4iCiN+ICJcbiIKI34gIkRpZXNlcyBQcm9ncmFtbSBpc3QgZnJlaWUgU29mdHdhcmU7IEluIGRlbiBRdWVsbGRhdGVpZW4ga/ZubmVuIFNpZSBkaWVcbiIKI34gIkJlZGluZ3VuZ2VuIGb8ciBkaWUgV2VpdGVyZ2FiZSBuYWNobGVzZW4uXG4iCiN+ICJFcyBnaWJ0IEtFSU5FIEdBUkFOVElFOyBuaWNodCBlaW5tYWwgZGllIGltcGxpeml0ZSBHYXJhbnRpZSBkZXJcbiIKI34gIk1BUktURsRISUdLRUlUIG9kZXIgZGVyIEVSRtxMTFVORyBFSU5FUyBCRVNUSU1NVEVOIFpXRUNLRVMuXG4iCgojfiBtc2dpZCAiQ2FsbGVkIHNhdmNoYXIoKSB3aXRoIHVuZXhwZWN0ZWQgcHVzaGJhY2sgKCV4KSIKI34gbXNnc3RyICJBdWZydWYgdm9uIHNhdmNoYXIoKSBtaXQgdW5lcndhcnRldGVtIFwicHVzaGJhY2tcIiAoJXgpIgoKI34gbXNnaWQgIklOVEVSTkFMIEVSUk9SOiBiYWQgYWRkcmVzcyB0eXBlIgojfiBtc2dzdHIgIklOVEVSTkVSIEZFSExFUjogRmFsc2NoZSBBZHJlc3NlbmFydCIKCiN+IG1zZ2lkICJJTlRFUk5BTCBFUlJPUjogQmFkIGNtZCAlYyIKI34gbXNnc3RyICJJTlRFUk5FUiBGRUhMRVI6IEZhbHNjaGVyIEJlZmVobCAlYyIKCiN+IG1zZ2lkICJVbmV4cGVjdGVkIEVuZC1vZi1maWxlIgojfiBtc2dzdHIgIlVuZXJ3YXJ0ZXRlcyBEYXRlaWVuZGUiCgojfiBtc2dpZCAiYmFkIHJlZ2V4cDogJXNcbiIKI34gbXNnc3RyICJGYWxzY2hlciByZWd1bORyZXIgQXVzZHJ1Y2s6ICVzXG4iCgojfiBtc2dpZCAiaW5wdXQgcmVhZCBlcnJvcjogJXMiCiN+IG1zZ3N0ciAiRWluZ2FiZS1MZXNlZmVobGVyOiAlcyIKCiN+IG1zZ2lkICJjb3VsZG4ndCB3cml0ZSBhbiBpdGVtIHRvICVzOiAlcyIKI34gbXNnc3RyICJLYW5uIGVpbiBGZWxkIG5pY2h0IGF1ZiAlcyBzY2hyZWliZW46ICVzIgo=