IyBEYW5pc2ggbWVzc2FnZXMgZm9yIHNlZAojIENvcHlyaWdodCAoQykgMjAwMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBCeXJpYWwgT2xlIEplbnNlbiA8YnlyaWFsQGltYWdlLmRrPiwgMjAwMS0yMDAzLgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBzZWQgNC4wLjhcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LXV0aWxzQGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA5LTA2LTI3IDE1OjA4KzAyMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDMtMTAtMjUgMDg6MDArMDIwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBCeXJpYWwgT2xlIEplbnNlbiA8YnlyaWFsQGltYWdlLmRrPlxuIgoiTGFuZ3VhZ2UtVGVhbTogRGFuaXNoIDxkYW5za0BrbGlkLmRrPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD1uICE9IDE7XG4iCgojOiBzZWQvY29tcGlsZS5jOjE2MQojLCBmdXp6eQptc2dpZCAibXVsdGlwbGUgYCEncyIKbXNnc3RyICJGbGVyZSAnISciCgojOiBzZWQvY29tcGlsZS5jOjE2MgojLCBmdXp6eQptc2dpZCAidW5leHBlY3RlZCBgLCciCm1zZ3N0ciAiVXZlbnRldCAnLCciCgojOiBzZWQvY29tcGlsZS5jOjE2MwojLCBmdXp6eQptc2dpZCAiaW52YWxpZCB1c2FnZSBvZiArTiBvciB+TiBhcyBmaXJzdCBhZGRyZXNzIgptc2dzdHIgIkthbiBpa2tlIGJydWdlICtOIGVsbGVyIH5OIHNvbSBm+HJzdGUgYWRyZXNzZSIKCiM6IHNlZC9jb21waWxlLmM6MTY0CiMsIGZ1enp5Cm1zZ2lkICJ1bm1hdGNoZWQgYHsnIgptc2dzdHIgIlVwYXJyZXQgJ3snIgoKIzogc2VkL2NvbXBpbGUuYzoxNjUKIywgZnV6enkKbXNnaWQgInVuZXhwZWN0ZWQgYH0nIgptc2dzdHIgIlV2ZW50ZXQgJ30nIgoKIzogc2VkL2NvbXBpbGUuYzoxNjYKIywgZnV6enkKbXNnaWQgImV4dHJhIGNoYXJhY3RlcnMgYWZ0ZXIgY29tbWFuZCIKbXNnc3RyICJFa3N0cmEgdGVnbiBlZnRlciBrb21tYW5kbyIKCiM6IHNlZC9jb21waWxlLmM6MTY3CiMsIGZ1enp5Cm1zZ2lkICJleHBlY3RlZCBcXCBhZnRlciBgYScsIGBjJyBvciBgaSciCm1zZ3N0ciAiRm9ydmVudGVkZSBcXCBlZnRlciAnYScsICdjJyBlbGxlciAnaSciCgojOiBzZWQvY29tcGlsZS5jOjE2OAptc2dpZCAiYH0nIGRvZXNuJ3Qgd2FudCBhbnkgYWRkcmVzc2VzIgptc2dzdHIgIid9JyB2aWwgaWtrZSBoYXZlIGFkcmVzc2VyIgoKIzogc2VkL2NvbXBpbGUuYzoxNjkKbXNnaWQgIjogZG9lc24ndCB3YW50IGFueSBhZGRyZXNzZXMiCm1zZ3N0ciAiOiB2aWwgaWtrZSBoYXZlIGFkcmVzc2VyIgoKIzogc2VkL2NvbXBpbGUuYzoxNzAKIywgZnV6enkKbXNnaWQgImNvbW1lbnRzIGRvbid0IGFjY2VwdCBhbnkgYWRkcmVzc2VzIgptc2dzdHIgIktvbW1lbnRhcmVyIHZpbCBpa2tlIGhhdmUgYWRyZXNzZXIiCgojOiBzZWQvY29tcGlsZS5jOjE3MQojLCBmdXp6eQptc2dpZCAibWlzc2luZyBjb21tYW5kIgptc2dzdHIgIkRlciBtYW5nbGVyIGVuIGtvbW1hbmRvIgoKIzogc2VkL2NvbXBpbGUuYzoxNzIKIywgZnV6enkKbXNnaWQgImNvbW1hbmQgb25seSB1c2VzIG9uZSBhZGRyZXNzIgptc2dzdHIgIktvbW1hbmRvZW4gYnJ1Z2VyIGt1biDpbiBhZHJlc3NlIgoKIzogc2VkL2NvbXBpbGUuYzoxNzMKIywgZnV6enkKbXNnaWQgInVudGVybWluYXRlZCBhZGRyZXNzIHJlZ2V4Igptc2dzdHIgIlVhZnNsdXR0ZXQgcmVndWzmcnQgdWR0cnlrIGZvciBhZHJlc3NlIgoKIzogc2VkL2NvbXBpbGUuYzoxNzQKIywgZnV6enkKbXNnaWQgInVudGVybWluYXRlZCBgcycgY29tbWFuZCIKbXNnc3RyICJVYWZzbHV0dGV0ICdzJy1rb21tYW5kbyIKCiM6IHNlZC9jb21waWxlLmM6MTc1CiMsIGZ1enp5Cm1zZ2lkICJ1bnRlcm1pbmF0ZWQgYHknIGNvbW1hbmQiCm1zZ3N0ciAiVWFmc2x1dHRldCAneScta29tbWFuZG8iCgojOiBzZWQvY29tcGlsZS5jOjE3NgojLCBmdXp6eQptc2dpZCAidW5rbm93biBvcHRpb24gdG8gYHMnIgptc2dzdHIgIlVrZW5kdCB0aWx2YWxnIHRpbCAncyciCgojOiBzZWQvY29tcGlsZS5jOjE3Nwptc2dpZCAibXVsdGlwbGUgYHAnIG9wdGlvbnMgdG8gYHMnIGNvbW1hbmQiCm1zZ3N0ciAiRmxlcmUgJ3AnLWZsYWcgdGlsICdzJy1rb21tYW5kbyIKCiM6IHNlZC9jb21waWxlLmM6MTc4Cm1zZ2lkICJtdWx0aXBsZSBgZycgb3B0aW9ucyB0byBgcycgY29tbWFuZCIKbXNnc3RyICJGbGVyZSAnZyctZmxhZyB0aWwgJ3MnLWtvbW1hbmRvIgoKIzogc2VkL2NvbXBpbGUuYzoxNzkKbXNnaWQgIm11bHRpcGxlIG51bWJlciBvcHRpb25zIHRvIGBzJyBjb21tYW5kIgptc2dzdHIgIkZsZXJlIHRhbC1mbGFnIHRpbCAncycta29tbWFuZG8iCgojOiBzZWQvY29tcGlsZS5jOjE4MAptc2dpZCAibnVtYmVyIG9wdGlvbiB0byBgcycgY29tbWFuZCBtYXkgbm90IGJlIHplcm8iCm1zZ3N0ciAicy1rb21tYW5kb2VucyB0YWwtZmxhZyBt5SBpa2tlIHbmcmUgbnVsIgoKIzogc2VkL2NvbXBpbGUuYzoxODEKIywgZnV6enkKbXNnaWQgInN0cmluZ3MgZm9yIGB5JyBjb21tYW5kIGFyZSBkaWZmZXJlbnQgbGVuZ3RocyIKbXNnc3RyICJ5LWtvbW1hbmRvZW5zIHN0cmVuZ2UgaGFyIGZvcnNrZWxsaWdlIGzmbmdkZXIiCgojOiBzZWQvY29tcGlsZS5jOjE4Mgptc2dpZCAiZGVsaW1pdGVyIGNoYXJhY3RlciBpcyBub3QgYSBzaW5nbGUtYnl0ZSBjaGFyYWN0ZXIiCm1zZ3N0ciAiIgoKIzogc2VkL2NvbXBpbGUuYzoxODMKbXNnaWQgImV4cGVjdGVkIG5ld2VyIHZlcnNpb24gb2Ygc2VkIgptc2dzdHIgImZvcnZlbnRlZGUgZW4gbnllcmUgdmVyc2lvbiBhZiBzZWQiCgojOiBzZWQvY29tcGlsZS5jOjE4NAojLCBmdXp6eQptc2dpZCAiaW52YWxpZCB1c2FnZSBvZiBsaW5lIGFkZHJlc3MgMCIKbXNnc3RyICJGb3JrZXJ0IGJydWcgYWYgYWRyZXNzZS3mbmRyZXIiCgojOiBzZWQvY29tcGlsZS5jOjE4NQojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgInVua25vd24gY29tbWFuZDogYCVjJyIKbXNnc3RyICJVa2VuZHQga29tbWFuZG86IgoKIzogc2VkL2NvbXBpbGUuYzoyMDgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlICVzIGxpbmUgJWx1OiAlc1xuIgptc2dzdHIgIiVzOiBmaWwgJXMsIGxpbmplICVsdTogJXNcbiIKCiM6IHNlZC9jb21waWxlLmM6MjExCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogLWUgZXhwcmVzc2lvbiAjJWx1LCBjaGFyICVsdTogJXNcbiIKbXNnc3RyICIlczogLWUgdWR0cnlrIG5yLiAlbHUsIHRlZ24gJWx1OiAlc1xuIgoKIzogc2VkL2NvbXBpbGUuYzoxNjY1CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY2FuJ3QgZmluZCBsYWJlbCBmb3IganVtcCB0byBgJXMnIgptc2dzdHIgIkthbiBpa2tlIGZpbmRlIGV0aWtldCBmb3IgaG9wIHRpbCAnJXMnIgoKIzogc2VkL2V4ZWN1dGUuYzo3MDkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW4ndCByZWFkICVzOiAlc1xuIgptc2dzdHIgIiVzOiBrYW4gaWtrZSBs5nNlICVzOiAlc1xuIgoKIzogc2VkL2V4ZWN1dGUuYzo3NDAKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCBlZGl0ICVzOiBpcyBhIHRlcm1pbmFsIgptc2dzdHIgImt1bm5lIGlra2Ugc2tyaXZlICVkIGVsZW1lbnQgdGlsICVzOiAlcyIKCiM6IHNlZC9leGVjdXRlLmM6NzQ1CiMsIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCBlZGl0ICVzOiBub3QgYSByZWd1bGFyIGZpbGUiCm1zZ3N0ciAiIgoKIzogc2VkL2V4ZWN1dGUuYzo3NTcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB3YXJuaW5nOiBmYWlsZWQgdG8gc2V0IGRlZmF1bHQgZmlsZSBjcmVhdGlvbiBjb250ZXh0IHRvICVzOiAlcyIKbXNnc3RyICIiCgojOiBzZWQvZXhlY3V0ZS5jOjc2NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHdhcm5pbmc6IGZhaWxlZCB0byBnZXQgc2VjdXJpdHkgY29udGV4dCBvZiAlczogJXMiCm1zZ3N0ciAiIgoKIzogc2VkL2V4ZWN1dGUuYzo3ODMgc2VkL3V0aWxzLmM6MjI3CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZSAlczogJXMiCm1zZ3N0ciAia3VubmUgaWtrZSDlYm5lIG1pZGxlcnRpZGlnIGZpbCAlczogJXMiCgojOiBzZWQvZXhlY3V0ZS5jOjEzMTcgc2VkL2V4ZWN1dGUuYzoxNDk3Cm1zZ2lkICJlcnJvciBpbiBzdWJwcm9jZXNzIgptc2dzdHIgImZlamwgaSB1bmRlcnByb2NlcyIKCiM6IHNlZC9leGVjdXRlLmM6MTMxOQptc2dpZCAib3B0aW9uIGBlJyBub3Qgc3VwcG9ydGVkIgptc2dzdHIgInRpbHZhbGcgJ2UnIGVyIGlra2UgdW5kZXJzdPh0dGV0IgoKIzogc2VkL2V4ZWN1dGUuYzoxNDk5Cm1zZ2lkICJgZScgY29tbWFuZCBub3Qgc3VwcG9ydGVkIgptc2dzdHIgIidlJy1rb21tYW5kbyBlciBpa2tlIHVuZGVyc3T4dHRldCIKCiM6IHNlZC9leGVjdXRlLmM6MTg0Mwptc2dpZCAibm8gaW5wdXQgZmlsZXMiCm1zZ3N0ciAiIgoKIzogc2VkL3JlZ2V4cC5jOjQxCiMsIGZ1enp5Cm1zZ2lkICJubyBwcmV2aW91cyByZWd1bGFyIGV4cHJlc3Npb24iCm1zZ3N0ciAiSW50ZXQgZm9ydWRn5WVuZGUgcmVndWzmcnQgdWR0cnlrIgoKIzogc2VkL3JlZ2V4cC5jOjQyCiMsIGZ1enp5Cm1zZ2lkICJjYW5ub3Qgc3BlY2lmeSBtb2RpZmllcnMgb24gZW1wdHkgcmVnZXhwIgptc2dzdHIgIkRlciBrYW4gaWtrZSBhbmdpdmVzIOZuZHJlcmUgdGlsIHRvbXQgcmVndWzmcnQgdWR0cnlrIgoKIzogc2VkL3JlZ2V4cC5jOjEzMQojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgcmVmZXJlbmNlIFxcJWQgb24gYHMnIGNvbW1hbmQncyBSSFMiCm1zZ3N0ciAiVWd5bGRpZyByZWZlcmVuY2UgXFwlZCBw5SAncycta29tbWFuZG9zIGj4anJlc2lkZSIKCiM6IHNlZC9zZWQuYzo5NwojLCBjLWZvcm1hdAptc2dpZCAiIgoiR05VIHNlZCBob21lIHBhZ2U6IDxodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvc2VkLz4uXG4iCiJHZW5lcmFsIGhlbHAgdXNpbmcgR05VIHNvZnR3YXJlOiA8aHR0cDovL3d3dy5nbnUub3JnL2dldGhlbHAvPi5cbiIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MTA0CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiIgoiRS1tYWlsIGJ1ZyByZXBvcnRzIHRvOiA8JXM+LlxuIgoiQmUgc3VyZSB0byBpbmNsdWRlIHRoZSB3b3JkIGBgJXMnJyBzb21ld2hlcmUgaW4gdGhlIGBgU3ViamVjdDonJyBmaWVsZC5cbiIKbXNnc3RyICIiCiJTZW5kIGZlamxyYXBwb3J0ZXIgcOUgZW5nZWxzayBwci4gZS1wb3N0IHRpbCAlcy5cbiIKIlP4cmcgdmVubGlnc3QgZm9yIGF0IHNrcml2ZSBvcmRldCBcIiVzXCIgZXQgc3RlZCBpIFwiU3ViamVjdDpcIi1mZWx0ZXQuXG4iCgojOiBzZWQvc2VkLmM6MTE3Cm1zZ2lkICIiCiIgIC1SLCAtLXJlZ2V4cC1wZXJsXG4iCiIgICAgICAgICAgICAgICAgIHVzZSBQZXJsIDUncyByZWd1bGFyIGV4cHJlc3Npb25zIHN5bnRheCBpbiB0aGUgc2NyaXB0LlxuIgptc2dzdHIgIiIKIiAgLVIsIC0tcmVnZXhwLXBlcmxcbiIKIiAgICAgICAgICAgICAgICAgYnJ1ZyBQZXJsIDUncyBzeW50YWtzIGZvciByZWd1bOZyZSB1ZHRyeWsgaSBza3JpcHRldFxuIgoKIzogc2VkL3NlZC5jOjEyMgojLCBjLWZvcm1hdAptc2dpZCAiIgoiVXNhZ2U6ICVzIFtPUFRJT05dLi4uIHtzY3JpcHQtb25seS1pZi1uby1vdGhlci1zY3JpcHR9IFtpbnB1dC1maWxlXS4uLlxuIgoiXG4iCm1zZ3N0ciAiIgoKIzogc2VkL3NlZC5jOjEyNgojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtbiwgLS1xdWlldCwgLS1zaWxlbnRcbiIKIiAgICAgICAgICAgICAgICAgc3VwcHJlc3MgYXV0b21hdGljIHByaW50aW5nIG9mIHBhdHRlcm4gc3BhY2VcbiIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MTI4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1lIHNjcmlwdCwgLS1leHByZXNzaW9uPXNjcmlwdFxuIgoiICAgICAgICAgICAgICAgICBhZGQgdGhlIHNjcmlwdCB0byB0aGUgY29tbWFuZHMgdG8gYmUgZXhlY3V0ZWRcbiIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MTMwCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1mIHNjcmlwdC1maWxlLCAtLWZpbGU9c2NyaXB0LWZpbGVcbiIKIiAgICAgICAgICAgICAgICAgYWRkIHRoZSBjb250ZW50cyBvZiBzY3JpcHQtZmlsZSB0byB0aGUgY29tbWFuZHMgdG8gYmUgIgoiZXhlY3V0ZWRcbiIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MTMzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC0tZm9sbG93LXN5bWxpbmtzXG4iCiIgICAgICAgICAgICAgICAgIGZvbGxvdyBzeW1saW5rcyB3aGVuIHByb2Nlc3NpbmcgaW4gcGxhY2VcbiIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MTM2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1pW1NVRkZJWF0sIC0taW4tcGxhY2VbPVNVRkZJWF1cbiIKIiAgICAgICAgICAgICAgICAgZWRpdCBmaWxlcyBpbiBwbGFjZSAobWFrZXMgYmFja3VwIGlmIGV4dGVuc2lvbiBzdXBwbGllZClcbiIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MTM5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1iLCAtLWJpbmFyeVxuIgoiICAgICAgICAgICAgICAgICBvcGVuIGZpbGVzIGluIGJpbmFyeSBtb2RlIChDUitMRnMgYXJlIG5vdCBwcm9jZXNzZWQgIgoic3BlY2lhbGx5KVxuIgptc2dzdHIgIiIKCiM6IHNlZC9zZWQuYzoxNDIKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLWwgTiwgLS1saW5lLWxlbmd0aD1OXG4iCiIgICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIGRlc2lyZWQgbGluZS13cmFwIGxlbmd0aCBmb3IgdGhlIGBsJyBjb21tYW5kXG4iCm1zZ3N0ciAiIgoKIzogc2VkL3NlZC5jOjE0NAojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtLXBvc2l4XG4iCiIgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIEdOVSBleHRlbnNpb25zLlxuIgptc2dzdHIgIiIKCiM6IHNlZC9zZWQuYzoxNDYKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1yLCAtLXJlZ2V4cC1leHRlbmRlZFxuIgoiICAgICAgICAgICAgICAgICB1c2UgZXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9ucyBpbiB0aGUgc2NyaXB0LlxuIgptc2dzdHIgIiIKIiAgLVIsIC0tcmVnZXhwLXBlcmxcbiIKIiAgICAgICAgICAgICAgICAgYnJ1ZyBQZXJsIDUncyBzeW50YWtzIGZvciByZWd1bOZyZSB1ZHRyeWsgaSBza3JpcHRldFxuIgoKIzogc2VkL3NlZC5jOjE1MQojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtcywgLS1zZXBhcmF0ZVxuIgoiICAgICAgICAgICAgICAgICBjb25zaWRlciBmaWxlcyBhcyBzZXBhcmF0ZSByYXRoZXIgdGhhbiBhcyBhIHNpbmdsZSAiCiJjb250aW51b3VzXG4iCiIgICAgICAgICAgICAgICAgIGxvbmcgc3RyZWFtLlxuIgptc2dzdHIgIiIKCiM6IHNlZC9zZWQuYzoxNTQKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXUsIC0tdW5idWZmZXJlZFxuIgoiICAgICAgICAgICAgICAgICBsb2FkIG1pbmltYWwgYW1vdW50cyBvZiBkYXRhIGZyb20gdGhlIGlucHV0IGZpbGVzIGFuZCAiCiJmbHVzaFxuIgoiICAgICAgICAgICAgICAgICB0aGUgb3V0cHV0IGJ1ZmZlcnMgbW9yZSBvZnRlblxuIgptc2dzdHIgIiIKCiM6IHNlZC9zZWQuYzoxNTcKIywgYy1mb3JtYXQKbXNnaWQgIiAgICAgIC0taGVscCAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXRcbiIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MTU4CiMsIGMtZm9ybWF0Cm1zZ2lkICIgICAgICAtLXZlcnNpb24gIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0XG4iCm1zZ3N0ciAiIgoKIzogc2VkL3NlZC5jOjE1OQojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiJJZiBubyAtZSwgLS1leHByZXNzaW9uLCAtZiwgb3IgLS1maWxlIG9wdGlvbiBpcyBnaXZlbiwgdGhlbiB0aGUgZmlyc3RcbiIKIm5vbi1vcHRpb24gYXJndW1lbnQgaXMgdGFrZW4gYXMgdGhlIHNlZCBzY3JpcHQgdG8gaW50ZXJwcmV0LiAgQWxsXG4iCiJyZW1haW5pbmcgYXJndW1lbnRzIGFyZSBuYW1lcyBvZiBpbnB1dCBmaWxlczsgaWYgbm8gaW5wdXQgZmlsZXMgYXJlXG4iCiJzcGVjaWZpZWQsIHRoZW4gdGhlIHN0YW5kYXJkIGlucHV0IGlzIHJlYWQuXG4iCiJcbiIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MzE1CiMsIGMtZm9ybWF0Cm1zZ2lkICJzdXBlci1zZWQgdmVyc2lvbiAlc1xuIgptc2dzdHIgInN1cGVyLXNlZCB2ZXJzaW9uICVzXG4iCgojOiBzZWQvc2VkLmM6MzE2CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiIgoiYmFzZWQgb24gR05VIHNlZCB2ZXJzaW9uICVzXG4iCiJcbiIKbXNnc3RyICIiCiJiYXNlcmV0IHDlIEdOVSBzZWQgdmVyc2lvbiAzLjAyLjgwXG4iCiJcbiIKCiM6IHNlZC9zZWQuYzozMTgKIywgYy1mb3JtYXQKbXNnaWQgIkdOVSBzZWQgdmVyc2lvbiAlc1xuIgptc2dzdHIgIkdOVSBzZWQgdmVyc2lvbiAlc1xuIgoKIzogc2VkL3NlZC5jOjMyMAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiIKIkNvcHlyaWdodCAoQykgJWQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuXG4iCiJUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOT1xuIgoid2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsXG4iCiJ0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuXG4iCm1zZ3N0ciAiIgoiJXNcbiIKIkRldHRlIGVyIGZyaXQgcHJvZ3JhbW1lbDsgc2Uga2lsZGV0ZWtzdGVuIGZvciBrb3BpZXJpbmdzYmV0aW5nZWxzZXIuXG4iCiJEZXIgZXIgSU5HRU4gZ2FyYW50aTsgZW5kIGlra2UgZm9yIFNBTEdCQVJIRUQgZWxsZXIgRUdORVRIRUQgVElMIE5PR0VUXG4iCiJCRVNURU1UIEZPUk3FTCwgaSBkZXQgb21mYW5nIHNvbSBsb3ZlbiB0aWxsYWRlci5cbiIKCiM6IHNlZC91dGlscy5jOjkzIHNlZC91dGlscy5jOjQzOAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCByZW1vdmUgJXM6ICVzIgptc2dzdHIgIiVzOiBrYW4gaWtrZSBs5nNlICVzOiAlc1xuIgoKIzogc2VkL3V0aWxzLmM6MTYzCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3Qgb3BlbiBmaWxlICVzOiAlcyIKbXNnc3RyICJrdW5uZSBpa2tlIOVibmUgZmlsZW4gJXM6ICVzIgoKIzogc2VkL3V0aWxzLmM6MTg2CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3QgYXR0YWNoIHRvICVzOiAlcyIKbXNnc3RyICJrdW5uZSBpa2tlIHNrcml2ZSAlZCBlbGVtZW50IHRpbCAlczogJXMiCgojOiBzZWQvdXRpbHMuYzoyNDUKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IHdyaXRlICVkIGl0ZW0gdG8gJXM6ICVzIgptc2dpZF9wbHVyYWwgImNvdWxkbid0IHdyaXRlICVkIGl0ZW1zIHRvICVzOiAlcyIKbXNnc3RyWzBdICJrdW5uZSBpa2tlIHNrcml2ZSAlZCBlbGVtZW50IHRpbCAlczogJXMiCm1zZ3N0clsxXSAia3VubmUgaWtrZSBza3JpdmUgJWQgZWxlbWVudGVyIHRpbCAlczogJXMiCgojOiBzZWQvdXRpbHMuYzoyNjAgc2VkL3V0aWxzLmM6Mjc2CiMsIGMtZm9ybWF0Cm1zZ2lkICJyZWFkIGVycm9yIG9uICVzOiAlcyIKbXNnc3RyICJs5nNlZmVqbCBw5SAlczogJXMiCgojOiBzZWQvdXRpbHMuYzozNzgKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCBmb2xsb3cgc3ltbGluayAlczogJXMiCm1zZ3N0ciAia3VubmUgaWtrZSDlYm5lIGZpbGVuICVzOiAlcyIKCiM6IHNlZC91dGlscy5jOjQxMgojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBzdGF0ICVzOiAlcyIKbXNnc3RyICIlczoga2FuIGlra2UgbOZzZSAlczogJXNcbiIKCiM6IHNlZC91dGlscy5jOjQ0MwojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCByZW5hbWUgJXM6ICVzIgptc2dzdHIgIiVzOiBrYW4gaWtrZSBs5nNlICVzOiAlc1xuIgoKIzogbGliL3JlZ2NvbXAuYzoxMzQKbXNnaWQgIlN1Y2Nlc3MiCm1zZ3N0ciAiR29kdCByZXN1bHRhdCIKCiM6IGxpYi9yZWdjb21wLmM6MTM3Cm1zZ2lkICJObyBtYXRjaCIKbXNnc3RyICJJbnRldCByZXN1bHRhdCIKCiM6IGxpYi9yZWdjb21wLmM6MTQwCm1zZ2lkICJJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbiIKbXNnc3RyICJVZ3lsZGlndCByZWd1bOZydCB1ZHRyeWsiCgojOiBsaWIvcmVnY29tcC5jOjE0Mwptc2dpZCAiSW52YWxpZCBjb2xsYXRpb24gY2hhcmFjdGVyIgptc2dzdHIgIlVneWxkaWd0IHNvcnRlcmluZ3N0ZWduIgoKIzogbGliL3JlZ2NvbXAuYzoxNDYKbXNnaWQgIkludmFsaWQgY2hhcmFjdGVyIGNsYXNzIG5hbWUiCm1zZ3N0ciAiVWd5bGRpZ3QgbmF2biBw5SB0ZWdua2xhc3NlIgoKIzogbGliL3JlZ2NvbXAuYzoxNDkKbXNnaWQgIlRyYWlsaW5nIGJhY2tzbGFzaCIKbXNnc3RyICJBZnNsdXR0ZW5kZSBvbXZlbmR0IHNrcuVzdHJlZyIKCiM6IGxpYi9yZWdjb21wLmM6MTUyCm1zZ2lkICJJbnZhbGlkIGJhY2sgcmVmZXJlbmNlIgptc2dzdHIgIlVneWxkaWcgcmVmZXJlbmNlIGJhZ3VkIgoKIzogbGliL3JlZ2NvbXAuYzoxNTUKbXNnaWQgIlVubWF0Y2hlZCBbIG9yIFteIgptc2dzdHIgIlVwYXJyZXQgWyBlbGxlciBbXiIKCiM6IGxpYi9yZWdjb21wLmM6MTU4Cm1zZ2lkICJVbm1hdGNoZWQgKCBvciBcXCgiCm1zZ3N0ciAiVXBhcnJldCAoIGVsbGVyIFxcKCIKCiM6IGxpYi9yZWdjb21wLmM6MTYxCm1zZ2lkICJVbm1hdGNoZWQgXFx7Igptc2dzdHIgIlVwYXJyZXQgXFx7IgoKIzogbGliL3JlZ2NvbXAuYzoxNjQKbXNnaWQgIkludmFsaWQgY29udGVudCBvZiBcXHtcXH0iCm1zZ3N0ciAiVWd5bGRpZ3QgaW5kaG9sZCBhZiBcXHtcXH0iCgojOiBsaWIvcmVnY29tcC5jOjE2Nwptc2dpZCAiSW52YWxpZCByYW5nZSBlbmQiCm1zZ3N0ciAiVWd5bGRpZyBzbHV0bmluZyBw5SBvbXLlZGUiCgojOiBsaWIvcmVnY29tcC5jOjE3MAptc2dpZCAiTWVtb3J5IGV4aGF1c3RlZCIKbXNnc3RyICJIdWtvbW1lbHNlbiBvcGJydWd0IgoKIzogbGliL3JlZ2NvbXAuYzoxNzMKbXNnaWQgIkludmFsaWQgcHJlY2VkaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbiIKbXNnc3RyICJVZ3lsZGlndCBmb3J1ZGflZW5kZSByZWd1bOZydCB1ZHRyeWsiCgojOiBsaWIvcmVnY29tcC5jOjE3Ngptc2dpZCAiUHJlbWF0dXJlIGVuZCBvZiByZWd1bGFyIGV4cHJlc3Npb24iCm1zZ3N0ciAiVWZ1bGRzdOZuZGlndCByZWd1bOZydCB1ZHRyeWsiCgojOiBsaWIvcmVnY29tcC5jOjE3OQptc2dpZCAiUmVndWxhciBleHByZXNzaW9uIHRvbyBiaWciCm1zZ3N0ciAiUmVndWzmcnQgdWR0cnlrIGZvciBzdG9ydCIKCiM6IGxpYi9yZWdjb21wLmM6MTgyCm1zZ2lkICJVbm1hdGNoZWQgKSBvciBcXCkiCm1zZ3N0ciAiVXBhcnJldCApIGVsbGVyIFxcKSIKCiM6IGxpYi9yZWdjb21wLmM6NzAzCm1zZ2lkICJObyBwcmV2aW91cyByZWd1bGFyIGV4cHJlc3Npb24iCm1zZ3N0ciAiSW50ZXQgZm9ydWRn5WVuZGUgcmVndWzmcnQgdWR0cnlrIgoKI34gbXNnaWQgIkNhbGxlZCBzYXZjaGFyKCkgd2l0aCB1bmV4cGVjdGVkIHB1c2hiYWNrICgleCkiCiN+IG1zZ3N0ciAic2F2Y2hhcigpIGthbGR0IG1lZCB1dmVudGV0IHRpbGJhZ2Vza3ViICgleCkiCgojfiBtc2dpZCAiSU5URVJOQUwgRVJST1I6IGJhZCBhZGRyZXNzIHR5cGUiCiN+IG1zZ3N0ciAiSU5URVJOIEZFSkw6IGZvcmtlcnQgYWRyZXNzZXR5cGUiCgojfiBtc2dpZCAiSU5URVJOQUwgRVJST1I6IEJhZCBjbWQgJWMiCiN+IG1zZ3N0ciAiSU5URVJOIEZFSkw6IEZvcmtlcnQgduZyZGkgYWYgY21kICVjIgoKI34gbXNnaWQgIiIKI34gIlVzYWdlOiAlcyBbT1BUSU9OXS4uLiB7c2NyaXB0LW9ubHktaWYtbm8tb3RoZXItc2NyaXB0fSBbaW5wdXQtZmlsZV0uLi5cbiIKI34gIlxuIgojfiAiICAtbiwgLS1xdWlldCwgLS1zaWxlbnRcbiIKI34gIiAgICAgICAgICAgICAgICAgc3VwcHJlc3MgYXV0b21hdGljIHByaW50aW5nIG9mIHBhdHRlcm4gc3BhY2VcbiIKI34gIiAgLWUgc2NyaXB0LCAtLWV4cHJlc3Npb249c2NyaXB0XG4iCiN+ICIgICAgICAgICAgICAgICAgIGFkZCB0aGUgc2NyaXB0IHRvIHRoZSBjb21tYW5kcyB0byBiZSBleGVjdXRlZFxuIgojfiAiICAtZiBzY3JpcHQtZmlsZSwgLS1maWxlPXNjcmlwdC1maWxlXG4iCiN+ICIgICAgICAgICAgICAgICAgIGFkZCB0aGUgY29udGVudHMgb2Ygc2NyaXB0LWZpbGUgdG8gdGhlIGNvbW1hbmRzIHRvIGJlICIKI34gImV4ZWN1dGVkXG4iCiN+ICIgIC1pW3N1ZmZpeF0sIC0taW4tcGxhY2VbPXN1ZmZpeF1cbiIKI34gIiAgICAgICAgICAgICAgICAgZWRpdCBmaWxlcyBpbiBwbGFjZSAobWFrZXMgYmFja3VwIGlmIGV4dGVuc2lvbiAiCiN+ICJzdXBwbGllZClcbiIKI34gIiAgLWwgTiwgLS1saW5lLWxlbmd0aD1OXG4iCiN+ICIgICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIGRlc2lyZWQgbGluZS13cmFwIGxlbmd0aCBmb3IgdGhlIGBsJyAiCiN+ICJjb21tYW5kXG4iCiN+ICIgIC1yLCAtLXJlZ2V4cC1leHRlbmRlZFxuIgojfiAiICAgICAgICAgICAgICAgICB1c2UgZXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9ucyBpbiB0aGUgc2NyaXB0LlxuIgojfiAiJXMgIC1zLCAtLXNlcGFyYXRlXG4iCiN+ICIgICAgICAgICAgICAgICAgIGNvbnNpZGVyIGZpbGVzIGFzIHNlcGFyYXRlIHJhdGhlciB0aGFuIGFzIGEgc2luZ2xlICIKI34gImNvbnRpbnVvdXNcbiIKI34gIiAgICAgICAgICAgICAgICAgbG9uZyBzdHJlYW0uXG4iCiN+ICIgIC11LCAtLXVuYnVmZmVyZWRcbiIKI34gIiAgICAgICAgICAgICAgICAgbG9hZCBtaW5pbWFsIGFtb3VudHMgb2YgZGF0YSBmcm9tIHRoZSBpbnB1dCBmaWxlcyBhbmQgIgojfiAiZmx1c2hcbiIKI34gIiAgICAgICAgICAgICAgICAgdGhlIG91dHB1dCBidWZmZXJzIG1vcmUgb2Z0ZW5cbiIKI34gIiAgICAgIC0taGVscCAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXRcbiIKI34gIiAgLVYsIC0tdmVyc2lvbiAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXRcbiIKI34gIlxuIgojfiAiSWYgbm8gLWUsIC0tZXhwcmVzc2lvbiwgLWYsIG9yIC0tZmlsZSBvcHRpb24gaXMgZ2l2ZW4sIHRoZW4gdGhlIGZpcnN0XG4iCiN+ICJub24tb3B0aW9uIGFyZ3VtZW50IGlzIHRha2VuIGFzIHRoZSBzZWQgc2NyaXB0IHRvIGludGVycHJldC4gIEFsbFxuIgojfiAicmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgbmFtZXMgb2YgaW5wdXQgZmlsZXM7IGlmIG5vIGlucHV0IGZpbGVzIGFyZVxuIgojfiAic3BlY2lmaWVkLCB0aGVuIHRoZSBzdGFuZGFyZCBpbnB1dCBpcyByZWFkLlxuIgojfiAiXG4iCiN+IG1zZ3N0ciAiIgojfiAiQnJ1ZzogJXMgW1RJTFZBTEddLi4uIHtza3JpcHQtaHZpcy1pbmdlbi1hbmRyZS1za3JpcHRlcn0gW2luZGZpbF0uLi5cbiIKI34gIlxuIgojfiAiICAtbiwgLS1xdWlldCwgLS1zaWxlbnRcbiIKI34gIiAgICAgICAgICAgICAgICAgdW5kZ+UgYXV0b21hdGlzayB1ZHNrcml2bmluZyBhZiBhcmJlamRzcnVtbWV0XG4iCiN+ICIgIC1lIHNrcmlwdCwgLS1leHByZXNzaW9uPXNrcmlwdFxuIgojfiAiICAgICAgICAgICAgICAgICB1ZGb4ciBrb21tYW5kb2VybmUgaSBza3JpcHRcbiIKI34gIiAgLWYgc2tyaXB0ZmlsLCAtLWZpbGU9c2tyaXB0ZmlsXG4iCiN+ICIgICAgICAgICAgICAgICAgIHVkZvhyIGtvbW1hbmRvZXJuZSBpIGZpbGVuIHNrcmlwdGZpbFxuIgojfiAiICAtaVtlbmRlbHNlXSwgLS1pbi1wbGFjZVs9ZW5kZWxzZV1cbiIKI34gIiAgICAgICAgICAgICAgICAgcmVkaWfpciBpIGZpbGVyIChsYXZlciBzaWtrZXJoZWRza29waSBodmlzIGVuZGVsc2UgZXIgIgojfiAiZ2l2ZXQpXG4iCiN+ICIgIC1sIE4sIC0tbGluZS1sZW5ndGg9TlxuIgojfiAiICAgICAgICAgICAgICAgICBhbmdpdiD4bnNrZXQgbGluamVkZWxpbmdzbOZuZ2RlIGZvciAnbCcta29tbWFuZG9lblxuIgojfiAiICAtciwgLS1yZWdleHAtZXh0ZW5kZWRcbiIKI34gIiAgICAgICAgICAgICAgICAgYnJ1ZyB1ZHZpZGVkZSByZWd1bOZyZSB1ZHRyeWsgaSBza3JpcHRldFxuIgojfiAiJXMgIC1zLCAtLXNlcGFyYXRlXG4iCiN+ICIgICAgICAgICAgICAgICAgIGJldHJhZ3QgZmlsZXIgc29tIGFkc2tpbHRlIHNuYXJlZGUgZW5kIHNvbSDpbiAiCiN+ICJzYW1tZW5o5m5nZW5kZVxuIgojfiAiICAgICAgICAgICAgICAgICBsYW5nIHN0cvhtXG4iCiN+ICIgIC11LCAtLXVuYnVmZmVyZWRcbiIKI34gIiAgICAgICAgICAgICAgICAgaW5kbOZzIG1pbmltYWxlIGRhdGFt5m5nZGVyIGZyYSBpbmRkYXRhZmlsZXIgb2cgdPhtXG4iCiN+ICIgICAgICAgICAgICAgICAgIG9mdGVyZSB1ZGRhdGFidWZmZXJlXG4iCiN+ICIgIC0taGVscCAgICAgICAgIHZpcyBkZW5uZSBoauZscCBvZyBhZnNsdXRcbiIKI34gIiAgLVYsIC0tdmVyc2lvbiAgdWRza3JpdiB2ZXJzaW9uc2luZm9ybWF0aW9uIG9nIGFmc2x1dFxuIgojfiAiXG4iCiN+ICJIdmlzIGRlciBpa2tlIGVyIGdpdmV0IG5vZ2VuICctZScsICctLWV4cHJlc3Npb24nLCAnLWYnIGVsbGVyICctLWZpbGUnXG4iCiN+ICJ0aWx2YWxnLCBz5SBvcGZhdHRlcyBkZXQgZvhyc3RlIGlra2UtdGlsdmFsZ3MtYXJndW1lbnQgc29tIGV0IHNlZC0iCiN+ICJza3JpcHQuXG4iCiN+ICJBbGxlIHJlc3RlcmVuZGUgYXJndW1lbnRlciBlciBuYXZuZSBw5SBpbmRkYXRhZmlsZXI7IGh2aXMgaW5nZW4gaW5kZGF0YS1cbiIKI34gImZpbGVyIHNwZWNpZmljZXJlcywgbOZzZXMgZnJhIHN0YW5kYXJkLWluZC5cbiIKI34gIlxuIgoKI34gbXNnaWQgIlVuZXhwZWN0ZWQgRW5kLW9mLWZpbGUiCiN+IG1zZ3N0ciAiVXZlbnRldCBTbHV0LXDlLUZpbCIK