IyBnZXR0ZXh0LTAuMTAvcG8vZGEucG8gLSBpbml0aWFsIHJldmlzaW9uICAtKi0gcG8gLSotCiMgQ29weXJpZ2h0IChDKSAxOTk2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgojIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHRoZSBnZXR0ZXh0IHBhY2thZ2UuCiMKIyBSZXZpZXdlZDogMjAwMS0wOC0zMSBvbGF1QGhhcmR3b3JraW5nLmRrCiMKIyBLZWxkIFNpbW9uc2VuIDxrZWxkQGRrdXVnLmRrPiwgMjAwMS0yMDAyLgojIFRob3JiavhybiBSYXZuIEFuZGVyc2VuIDxyYXZuQHVuaXhzbmVka2VyZW4uZGs+LCAxOTk2LgojIEtlbGQgU2ltb25zZW4gPGtlbGRAa2VsZGl4LmNvbT4sIDIwMTEuCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBnZXR0ZXh0LXJ1bnRpbWUgMC4xOS40LXJjMVxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGJ1Zy1nZXR0ZXh0QGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDIwLTA3LTI2IDIxOjU2KzAyMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMTUtMDQtMjYgMDE6NDUrMDIwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBLZWxkIFNpbW9uc2VuIDxrZWxkQGtlbGRpeC5jb20+XG4iCiJMYW5ndWFnZS1UZWFtOiBEYW5pc2ggPGRhbnNrQGRhbnNrLWdydXBwZW4uZGs+XG4iCiJMYW5ndWFnZTogZGFcbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOC1iaXRcbiIKIlgtQnVnczogUmVwb3J0IHRyYW5zbGF0aW9uIGVycm9ycyB0byB0aGUgTGFuZ3VhZ2UtVGVhbSBhZGRyZXNzLlxuIgoiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7XG4iCiJYLUdlbmVyYXRvcjogTG9rYWxpemUgMS4wXG4iCgojOiBnbnVsaWItbGliL2Nsb3Nlb3V0LmM6NjYKbXNnaWQgIndyaXRlIGVycm9yIgptc2dzdHIgInNrcml2ZWZlamwiCgojOiBnbnVsaWItbGliL2Vycm9yLmM6MTk1Cm1zZ2lkICJVbmtub3duIHN5c3RlbSBlcnJvciIKbXNnc3RyICJVa2VuZHQgc3lzdGVtZmVqbCIKCiM6IGdudWxpYi1saWIvZ2V0b3B0LmM6Mjc4CiMsIGZ1enp5LCBjLWZvcm1hdAojfCBtc2dpZCAiJXM6IG9wdGlvbiAnLVcgJXMnIGlzIGFtYmlndW91c1xuIgptc2dpZCAiJXM6IG9wdGlvbiAnJXMlcycgaXMgYW1iaWd1b3VzXG4iCm1zZ3N0ciAiJXM6IHRpbHZhbGdldCAnLVcgJXMnIGVyIGZsZXJ0eWRpZ3RcbiIKCiM6IGdudWxpYi1saWIvZ2V0b3B0LmM6Mjg0CiMsIGZ1enp5LCBjLWZvcm1hdAojfCBtc2dpZCAiJXM6IG9wdGlvbiAnJXMnIGlzIGFtYmlndW91czsgcG9zc2liaWxpdGllczoiCm1zZ2lkICIlczogb3B0aW9uICclcyVzJyBpcyBhbWJpZ3VvdXM7IHBvc3NpYmlsaXRpZXM6Igptc2dzdHIgIiVzOiB0aWx2YWxnZXQgJyVzJyBrYW4gYmV0eWRlIGZsZXJlIHRpbmcsIG11bGlnaGVkZXI6IgoKIzogZ251bGliLWxpYi9nZXRvcHQuYzozMTkKIywgZnV6enksIGMtZm9ybWF0CiN8IG1zZ2lkICIlczogdW5yZWNvZ25pemVkIG9wdGlvbiAnJWMlcydcbiIKbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgb3B0aW9uICclcyVzJ1xuIgptc2dzdHIgIiVzOiB1a2VuZHQgdGlsdmFsZyBgJWMlcydcbiIKCiM6IGdudWxpYi1saWIvZ2V0b3B0LmM6MzQ1CiMsIGZ1enp5LCBjLWZvcm1hdAojfCBtc2dpZCAiJXM6IG9wdGlvbiAnJWMlcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudFxuIgptc2dpZCAiJXM6IG9wdGlvbiAnJXMlcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudFxuIgptc2dzdHIgIiVzOiB0aWx2YWxnZXQgYCVjJXMnIHRpbGxhZGVyIGlra2UgZXQgYXJndW1lbnRcbiIKCiM6IGdudWxpYi1saWIvZ2V0b3B0LmM6MzYwCiMsIGZ1enp5LCBjLWZvcm1hdAojfCBtc2dpZCAiJXM6IG9wdGlvbiAnLS0lcycgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKbXNnaWQgIiVzOiBvcHRpb24gJyVzJXMnIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IHRpbHZhbGdldCBgLS0lcycga3LmdmVyIGV0IGFyZ3VtZW50XG4iCgojOiBnbnVsaWItbGliL2dldG9wdC5jOjYyMQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGludmFsaWQgb3B0aW9uIC0tICclYydcbiIKbXNnc3RyICIlczogdWd5bGRpZ3QgdGlsdmFsZyAtLSAlY1xuIgoKIzogZ251bGliLWxpYi9nZXRvcHQuYzo2MzYgZ251bGliLWxpYi9nZXRvcHQuYzo2ODIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJyVjJ1xuIgptc2dzdHIgIiVzOiB0aWx2YWxnZXQgJyVjJyBrcuZ2ZXIgZXQgYXJndW1lbnRcbiIKCiM6IGdudWxpYi1saWIveG1hbGxvYy5jOjM4CiMsIGMtZm9ybWF0Cm1zZ2lkICJtZW1vcnkgZXhoYXVzdGVkIgptc2dzdHIgImlra2UgbWVyZSBsZWRpZyBodWtvbW1lbHNlIgoKIzogc3JjL2VudnN1YnN0LmM6MTEwIHNyYy9nZXR0ZXh0LmM6MTM1IHNyYy9uZ2V0dGV4dC5jOjEyNAojLCBmdXp6eSwgYy1mb3JtYXQsIG5vLXdyYXAKI3wgbXNnaWQgIiIKI3wgIkNvcHlyaWdodCAoQykgJXMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuXG4iCiN8ICJMaWNlbnNlIEdQTHYzKzogR05VIEdQTCB2ZXJzaW9uIDMgb3IgbGF0ZXIgPGh0dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sPlxuIgojfCAiVGhpcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgYXJlIGZyZWUgdG8gY2hhbmdlIGFuZCByZWRpc3RyaWJ1dGUgaXQuXG4iCiN8ICJUaGVyZSBpcyBOTyBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3LlxuIgptc2dpZCAiIgoiQ29weXJpZ2h0IChDKSAlcyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy5cbiIKIkxpY2Vuc2UgR1BMdjMrOiBHTlUgR1BMIHZlcnNpb24gMyBvciBsYXRlciA8JXM+XG4iCiJUaGlzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBhcmUgZnJlZSB0byBjaGFuZ2UgYW5kIHJlZGlzdHJpYnV0ZSBpdC5cbiIKIlRoZXJlIGlzIE5PIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuXG4iCm1zZ3N0ciAiIgoiT3BoYXZzcmV0IKkgJXMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuXG4iCiJMaWNlbnMgR1BMdjMrOiBHTlUgR1BMIHZlcnNpb24gMyBlbGxlciBzZW5lcmUgPGh0dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sPlxuIgoiRGV0dGUgZXIgZnJpdCBwcm9ncmFtbWVsOiBkdSBrYW4gZnJpdCDmbmRyZSBvZyB2aWRlcmVkaXN0cmlidWVyZSBkZXQuXG4iCiJEZXIgZXIgSU5HRU4gR0FSQU5USUVSLCBz5SB2aWR0IHNvbSBsb3YgZm9yZXNrcml2ZXIuXG4iCgojOiBzcmMvZW52c3Vic3QuYzoxMTYgc3JjL2dldHRleHQuYzoxNDEgc3JjL25nZXR0ZXh0LmM6MTMwCiMsIGMtZm9ybWF0Cm1zZ2lkICJXcml0dGVuIGJ5ICVzLlxuIgptc2dzdHIgIlNrcmV2ZXQgYWYgJXMuXG4iCgojLiBUaGlzIGlzIGEgcHJvcGVyIG5hbWUuIFNlZSB0aGUgZ2V0dGV4dCBtYW51YWwsIHNlY3Rpb24gTmFtZXMuCiM6IHNyYy9lbnZzdWJzdC5jOjExNgptc2dpZCAiQnJ1bm8gSGFpYmxlIgptc2dzdHIgIkJydW5vIEhhaWJsZSIKCiM6IHNyYy9lbnZzdWJzdC5jOjEyNSBzcmMvZ2V0dGV4dC5jOjE1OSBzcmMvbmdldHRleHQuYzoxNDIKIywgYy1mb3JtYXQKbXNnaWQgInRvbyBtYW55IGFyZ3VtZW50cyIKbXNnc3RyICJGb3IgbWFuZ2UgYXJndW1lbnRlciIKCiM6IHNyYy9lbnZzdWJzdC5jOjEzNiBzcmMvZ2V0dGV4dC5jOjE2OSBzcmMvbmdldHRleHQuYzoxNTQKIywgYy1mb3JtYXQKbXNnaWQgIm1pc3NpbmcgYXJndW1lbnRzIgptc2dzdHIgImFyZ3VtZW50ZXIgbWFuZ2xlciIKCiM6IHNyYy9lbnZzdWJzdC5jOjE3NCBzcmMvZ2V0dGV4dC5jOjI0NiBzcmMvbmdldHRleHQuYzoyMTEKIywgYy1mb3JtYXQKbXNnaWQgIlRyeSAnJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKbXNnc3RyICJQcvh2ICclcyAtLWhlbHAnIGZvciB5ZGVybGlnZXJlIG9wbHlzbmluZ2VyLlxuIgoKIzogc3JjL2VudnN1YnN0LmM6MTc5CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICJVc2FnZTogJXMgW09QVElPTl0gW1NIRUxMLUZPUk1BVF1cbiIKbXNnc3RyICJCcnVnOiAlcyBbVElMVkFMR10gW1NLQUwtRk9STUFUXS4uLlxuIgoKIzogc3JjL2VudnN1YnN0LmM6MTg0CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICJTdWJzdGl0dXRlcyB0aGUgdmFsdWVzIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiIKbXNnc3RyICJFcnN0YXR0ZXIgduZyZGllcm5lIGFmIG1pbGr4dmFyaWFibGUuXG4iCgojOiBzcmMvZW52c3Vic3QuYzoxODgKIywgYy1mb3JtYXQsIG5vLXdyYXAKbXNnaWQgIk9wZXJhdGlvbiBtb2RlOlxuIgptc2dzdHIgIkv4cnNlbHN0aWxzdGFuZDpcbiIKCiM6IHNyYy9lbnZzdWJzdC5jOjE5MQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtdiwgLS12YXJpYWJsZXMgICAgICAgICAgICAgb3V0cHV0IHRoZSB2YXJpYWJsZXMgb2NjdXJyaW5nIGluIFNIRUxMLUZPUk1BVFxuIgptc2dzdHIgIiAgLXYsIC0tdmFyaWFibGVzICAgICAgICAgICAgIHZpcyB2YXJpYWJsZW5lIGRlciBvcHRy5mRlciBpIFNLQUwtRk9STUFUXG4iCgojOiBzcmMvZW52c3Vic3QuYzoxOTUgc3JjL2dldHRleHQuYzoyNzUgc3JjL25nZXR0ZXh0LmM6MjQxCiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICJJbmZvcm1hdGl2ZSBvdXRwdXQ6XG4iCm1zZ3N0ciAiSW5mb3JtYXRpdnQgdWRkYXRhOlxuIgoKIzogc3JjL2VudnN1YnN0LmM6MTk4CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdFxuIgptc2dzdHIgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgIHZpcyBkZW5uZSBoauZscCBvZyBhZnNsdXRcbiIKCiM6IHNyYy9lbnZzdWJzdC5jOjIwMQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXRcbiIKbXNnc3RyICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICB2aXMgdmVyc2lvbnNpbmZvcm1hdGlvbiBvZyBhZnNsdXRcbiIKCiM6IHNyYy9lbnZzdWJzdC5jOjIwNQojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiIgoiSW4gbm9ybWFsIG9wZXJhdGlvbiBtb2RlLCBzdGFuZGFyZCBpbnB1dCBpcyBjb3BpZWQgdG8gc3RhbmRhcmQgb3V0cHV0LFxuIgoid2l0aCByZWZlcmVuY2VzIHRvIGVudmlyb25tZW50IHZhcmlhYmxlcyBvZiB0aGUgZm9ybSAkVkFSSUFCTEUgb3IgJHtWQVJJQUJMRX1cbiIKImJlaW5nIHJlcGxhY2VkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVzLiAgSWYgYSBTSEVMTC1GT1JNQVQgaXMgZ2l2ZW4sXG4iCiJvbmx5IHRob3NlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSByZWZlcmVuY2VkIGluIFNIRUxMLUZPUk1BVCBhcmVcbiIKInN1YnN0aXR1dGVkOyBvdGhlcndpc2UgYWxsIGVudmlyb25tZW50IHZhcmlhYmxlcyByZWZlcmVuY2VzIG9jY3VycmluZyBpblxuIgoic3RhbmRhcmQgaW5wdXQgYXJlIHN1YnN0aXR1dGVkLlxuIgptc2dzdHIgIiIKIkkgbm9ybWFsIGv4cnNlbHN0aWxzdGFuZCBrb3BpZXJlcyBzdGFuZGFyZC1pbmRkYXRhIHRpbCBzdGFuZGFyZC11ZGRhdGEsXG4iCiJtZWQgcmVmZXJlbmNlciB0aWwgbWlsavh2YXJpYWJsZSBw5SBmb3JtZW4gJFZBUklBQkxFIGVsbGVyICR7VkFSSUFCTEV9XG4iCiJlcnN0YXR0ZXQgbWVkIGRlbiB0aWxzdmFyZW5kZSB25nJkaS4gSHZpcyBldCBTS0FMLUZPUk1BVCBlciBhbmdpdmV0LFxuIgoiYmxpdmVyIGt1biBkZSBtaWxq+HZhcmlhYmxlIHNvbSByZWZlcmVyZXMgaSBTS0FMLUZPUk1BVCBlcnN0YXR0ZXQ7XG4iCiJlbGxlcnMgZXJzdGF0ZXMgYWxsZSBtaWxq+HZhcmlhYmVscmVmZXJlbmNlciBkZXIgb3B0cuZkZXIgaVxuIgoic3RhbmRhcmQtaW5kZGF0YS5cbiIKCiM6IHNyYy9lbnZzdWJzdC5jOjIxNAojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiIgoiV2hlbiAtLXZhcmlhYmxlcyBpcyB1c2VkLCBzdGFuZGFyZCBpbnB1dCBpcyBpZ25vcmVkLCBhbmQgdGhlIG91dHB1dCBjb25zaXN0c1xuIgoib2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSByZWZlcmVuY2VkIGluIFNIRUxMLUZPUk1BVCwgb25lIHBlciBsaW5lLlxuIgptc2dzdHIgIiIKIk7lciAtLXZhcmlhYmxlcyBicnVnZXMsIGlnbm9yZXMgaW5kZGF0YSwgb2cgdWRkYXRhIGJlc3TlciBhZlxuIgoibWlsavh2YXJpYWJsZW5lIGRlciBvcHRy5mRlciBpIFNLQUwtRk9STUFULCDpbiBwZXIgbGluamUuXG4iCgojLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0IHBsYWNlaG9sZGVyIGlzIHRoZSB3ZWIgYWRkcmVzcyBvZiB0aGUgU2F2YW5uYWgKIy4gcHJvamVjdCBvZiB0aGlzIHBhY2thZ2UuICBUaGUgc2Vjb25kIHBsYWNlaG9sZGVyIGlzIHRoZSBidWctcmVwb3J0aW5nCiMuIGVtYWlsIGFkZHJlc3MgZm9yIHRoaXMgcGFja2FnZS4gIFBsZWFzZSBhZGQgX2Fub3RoZXIgbGluZV8gc2F5aW5nCiMuICJSZXBvcnQgdHJhbnNsYXRpb24gYnVncyB0byA8Li4uPlxuIiB3aXRoIHRoZSBhZGRyZXNzIGZvciB0cmFuc2xhdGlvbgojLiBidWdzICh0eXBpY2FsbHkgeW91ciB0cmFuc2xhdGlvbiB0ZWFtJ3Mgd2ViIG9yIGVtYWlsIGFkZHJlc3MpLgojOiBzcmMvZW52c3Vic3QuYzoyMjMgc3JjL2dldHRleHQuYzoyOTkgc3JjL25nZXR0ZXh0LmM6MjYyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJSZXBvcnQgYnVncyBpbiB0aGUgYnVnIHRyYWNrZXIgYXQgPCVzPlxuIgoib3IgYnkgZW1haWwgdG8gPCVzPi5cbiIKbXNnc3RyICIiCgojOiBzcmMvZW52c3Vic3QuYzo0NTEKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIHdoaWxlIHJlYWRpbmcgXCIlc1wiIgptc2dzdHIgImZlamwgdmVkIGzmc25pbmcgYWYgJyVzJyIKCiM6IHNyYy9lbnZzdWJzdC5jOjQ1MQptc2dpZCAic3RhbmRhcmQgaW5wdXQiCm1zZ3N0ciAic3RhbmRhcmQtaW5kZGF0YSIKCiMuIFRoaXMgaXMgYSBwcm9wZXIgbmFtZS4gU2VlIHRoZSBnZXR0ZXh0IG1hbnVhbCwgc2VjdGlvbiBOYW1lcy4KIzogc3JjL2dldHRleHQuYzoxNDEgc3JjL25nZXR0ZXh0LmM6MTMwCm1zZ2lkICJVbHJpY2ggRHJlcHBlciIKbXNnc3RyICJVbHJpY2ggRHJlcHBlciIKCiM6IHNyYy9nZXR0ZXh0LmM6MjUxCiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIiCiJVc2FnZTogJXMgW09QVElPTl0gW1tURVhURE9NQUlOXSBNU0dJRF1cbiIKIm9yOiAgICAlcyBbT1BUSU9OXSAtcyBbTVNHSURdLi4uXG4iCm1zZ3N0ciAiIgoiQnJ1ZzogICVzIFtUSUxWQUxHXSBbW1RFS1NURE9Nxk5FXSBURUtTVElEXVxuIgoiZWxsZXI6ICVzIFtUSUxWQUxHXSAtcyBbVEVLU1RJRF0uLi5cbiIKCiM6IHNyYy9nZXR0ZXh0LmM6MjU3CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICJEaXNwbGF5IG5hdGl2ZSBsYW5ndWFnZSB0cmFuc2xhdGlvbiBvZiBhIHRleHR1YWwgbWVzc2FnZS5cbiIKbXNnc3RyICJWaXMgaWtrZS1lbmdlbHNrIG92ZXJz5nR0ZWxzZSBhZiBlbiB0ZWtzdGJlc2tlZC5cbiIKCiM6IHNyYy9nZXR0ZXh0LmM6MjYxCiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIgIC1kLCAtLWRvbWFpbj1URVhURE9NQUlOICAgcmV0cmlldmUgdHJhbnNsYXRlZCBtZXNzYWdlcyBmcm9tIFRFWFRET01BSU5cbiIKbXNnc3RyICIiCgojOiBzcmMvZ2V0dGV4dC5jOjI2MyBzcmMvbmdldHRleHQuYzoyMjgKIywgYy1mb3JtYXQKbXNnaWQgIiAgLWMsIC0tY29udGV4dD1DT05URVhUICAgICBzcGVjaWZ5IGNvbnRleHQgZm9yIE1TR0lEXG4iCm1zZ3N0ciAiIgoKIzogc3JjL2dldHRleHQuYzoyNjUgc3JjL25nZXR0ZXh0LmM6MjMwCiMsIGMtZm9ybWF0Cm1zZ2lkICIgIC1lICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlIGV4cGFuc2lvbiBvZiBzb21lIGVzY2FwZSBzZXF1ZW5jZXNcbiIKbXNnc3RyICIiCgojOiBzcmMvZ2V0dGV4dC5jOjI2NwojLCBjLWZvcm1hdAptc2dpZCAiICAtbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cHByZXNzIHRyYWlsaW5nIG5ld2xpbmVcbiIKbXNnc3RyICIiCgojOiBzcmMvZ2V0dGV4dC5jOjI2OSBzcmMvbmdldHRleHQuYzoyMzIKIywgYy1mb3JtYXQKbXNnaWQgIiAgLUUgICAgICAgICAgICAgICAgICAgICAgICAoaWdub3JlZCBmb3IgY29tcGF0aWJpbGl0eSlcbiIKbXNnc3RyICIiCgojOiBzcmMvZ2V0dGV4dC5jOjI3MQojLCBjLWZvcm1hdAptc2dpZCAiIgoiICBbVEVYVERPTUFJTl0gTVNHSUQgICAgICAgIHJldHJpZXZlIHRyYW5zbGF0ZWQgbWVzc2FnZSBjb3JyZXNwb25kaW5nXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gTVNHSUQgZnJvbSBURVhURE9NQUlOXG4iCm1zZ3N0ciAiIgoKIzogc3JjL2dldHRleHQuYzoyNzcgc3JjL25nZXR0ZXh0LmM6MjQzCiMsIGZ1enp5LCBjLWZvcm1hdAojfCBtc2dpZCAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXRcbiIKbXNnaWQgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdFxuIgptc2dzdHIgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgIHZpcyBkZW5uZSBoauZscCBvZyBhZnNsdXRcbiIKCiM6IHNyYy9nZXR0ZXh0LmM6Mjc5IHNyYy9uZ2V0dGV4dC5jOjI0NQojLCBmdXp6eSwgYy1mb3JtYXQKI3wgbXNnaWQgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0XG4iCm1zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0XG4iCm1zZ3N0ciAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgdmlzIHZlcnNpb25zaW5mb3JtYXRpb24gb2cgYWZzbHV0XG4iCgojOiBzcmMvZ2V0dGV4dC5jOjI4MwojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiIgoiSWYgdGhlIFRFWFRET01BSU4gcGFyYW1ldGVyIGlzIG5vdCBnaXZlbiwgdGhlIGRvbWFpbiBpcyBkZXRlcm1pbmVkIGZyb20gdGhlXG4iCiJlbnZpcm9ubWVudCB2YXJpYWJsZSBURVhURE9NQUlOLiAgSWYgdGhlIG1lc3NhZ2UgY2F0YWxvZyBpcyBub3QgZm91bmQgaW4gdGhlXG4iCiJyZWd1bGFyIGRpcmVjdG9yeSwgYW5vdGhlciBsb2NhdGlvbiBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlIGVudmlyb25tZW50XG4iCiJ2YXJpYWJsZSBURVhURE9NQUlORElSLlxuIgoiV2hlbiB1c2VkIHdpdGggdGhlIC1zIG9wdGlvbiB0aGUgcHJvZ3JhbSBiZWhhdmVzIGxpa2UgdGhlICdlY2hvJyBjb21tYW5kLlxuIgoiQnV0IGl0IGRvZXMgbm90IHNpbXBseSBjb3B5IGl0cyBhcmd1bWVudHMgdG8gc3Rkb3V0LiAgSW5zdGVhZCB0aG9zZSBtZXNzYWdlc1xuIgoiZm91bmQgaW4gdGhlIHNlbGVjdGVkIGNhdGFsb2cgYXJlIHRyYW5zbGF0ZWQuXG4iCiJTdGFuZGFyZCBzZWFyY2ggZGlyZWN0b3J5OiAlc1xuIgptc2dzdHIgIiIKIkh2aXMgVEVLU1RET03GTkUtcGFyYW1ldGVyZW4gaWtrZSBhbmdpdmVzLCBiZXN0ZW1tZXMgZG9t5m5ldCB1ZCBmcmEgduZyZGllbiBhZlxuIgoibWlsavh2YXJpYWJsZW4gVEVYVERPTUFJTi4gSHZpcyB0ZWtzdGthdGFsb2dldCBpa2tlIGthbiBmaW5kZXMgaSBkZXRcbiIKInPmZHZhbmxpZ2UgZmlsa2F0YWxvZywga2FuIGVuIGFuZGVuIHBsYWNlcmluZyBhbmdpdmVzIG1lZCBtaWxq+HZhcmlhYmxlblxuIgoiVEVYVERPTUFJTkRJUi5cbiIKIk7lciB0aWx2YWxnZXQgLXMgYnJ1Z2VzLCBvcGb4cmVyIHByb2dyYW1tZXQgc2lnIHNvbSAnZWNobycta29tbWFuZG9lbi5cbiIKIk1lbiBhcmd1bWVudGVybmUgYmxpdmVyIGlra2UgYmxvdCBrb3BpZXJldCB0aWwgc3RhbmRhcmQgdWRkYXRhLiBJIHN0ZWRldFxuIgoib3ZlcnPmdHRlcyBkZSB0ZWtzdGVyIGRlciBmaW5kZXMgaSBkZXQgdmFsZ3RlIHRla3N0a2F0YWxvZy5cbiIKIlN0YW5kYXJkLWZpbGthdGFsb2dldCBmb3Igc/hnbmluZyBlcjogJXNcbiIKCiM6IHNyYy9uZ2V0dGV4dC5jOjIxNgojLCBjLWZvcm1hdCwgbm8td3JhcAptc2dpZCAiVXNhZ2U6ICVzIFtPUFRJT05dIFtURVhURE9NQUlOXSBNU0dJRCBNU0dJRC1QTFVSQUwgQ09VTlRcbiIKbXNnc3RyICJCcnVnOiAlcyBbVElMVkFMR10gW1RFS1NURE9Nxk5FXSBURUtTVElEIFRFS1NUSUQtRkxFUlRBTCBBTlRBTFxuIgoKIzogc3JjL25nZXR0ZXh0LmM6MjIxCiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIiCiJEaXNwbGF5IG5hdGl2ZSBsYW5ndWFnZSB0cmFuc2xhdGlvbiBvZiBhIHRleHR1YWwgbWVzc2FnZSB3aG9zZSBncmFtbWF0aWNhbFxuIgoiZm9ybSBkZXBlbmRzIG9uIGEgbnVtYmVyLlxuIgptc2dzdHIgIiIKIlZpcyBvdmVyc+Z0dGVsc2VyIGkgZGV0IGxva2FsZSBzcHJvZyBhZiB0ZWtzdGJlc2tlZGVyIGh2aXMgZ3JhbW1hdGlza2VcbiIKImZvcm0gYmVyb3IgcOUgZXQgdGFsLlxuIgoKIzogc3JjL25nZXR0ZXh0LmM6MjI2CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIgIC1kLCAtLWRvbWFpbj1URVhURE9NQUlOICAgcmV0cmlldmUgdHJhbnNsYXRlZCBtZXNzYWdlIGZyb20gVEVYVERPTUFJTlxuIgptc2dzdHIgIiIKCiM6IHNyYy9uZ2V0dGV4dC5jOjIzNAojLCBjLWZvcm1hdAptc2dpZCAiIgoiICBbVEVYVERPTUFJTl0gICAgICAgICAgICAgIHJldHJpZXZlIHRyYW5zbGF0ZWQgbWVzc2FnZSBmcm9tIFRFWFRET01BSU5cbiIKbXNnc3RyICIiCgojOiBzcmMvbmdldHRleHQuYzoyMzYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgTVNHSUQgTVNHSUQtUExVUkFMICAgICAgICB0cmFuc2xhdGUgTVNHSUQgKHNpbmd1bGFyKSAvIE1TR0lELVBMVVJBTCAiCiIocGx1cmFsKVxuIgptc2dzdHIgIiIKCiM6IHNyYy9uZ2V0dGV4dC5jOjIzOAojLCBjLWZvcm1hdAptc2dpZCAiIgoiICBDT1VOVCAgICAgICAgICAgICAgICAgICAgIGNob29zZSBzaW5ndWxhci9wbHVyYWwgZm9ybSBiYXNlZCBvbiB0aGlzIHZhbHVlXG4iCm1zZ3N0ciAiIgoKIzogc3JjL25nZXR0ZXh0LmM6MjQ5CiMsIGMtZm9ybWF0LCBuby13cmFwCm1zZ2lkICIiCiJJZiB0aGUgVEVYVERPTUFJTiBwYXJhbWV0ZXIgaXMgbm90IGdpdmVuLCB0aGUgZG9tYWluIGlzIGRldGVybWluZWQgZnJvbSB0aGVcbiIKImVudmlyb25tZW50IHZhcmlhYmxlIFRFWFRET01BSU4uICBJZiB0aGUgbWVzc2FnZSBjYXRhbG9nIGlzIG5vdCBmb3VuZCBpbiB0aGVcbiIKInJlZ3VsYXIgZGlyZWN0b3J5LCBhbm90aGVyIGxvY2F0aW9uIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCB0aGUgZW52aXJvbm1lbnRcbiIKInZhcmlhYmxlIFRFWFRET01BSU5ESVIuXG4iCiJTdGFuZGFyZCBzZWFyY2ggZGlyZWN0b3J5OiAlc1xuIgptc2dzdHIgIiIKIkh2aXMgVEVLU1RET03GTkUtcGFyYW1ldGVyZW4gaWtrZSBhbmdpdmVzLCBiZXN0ZW1tZXMgZG9t5m5ldCB1ZCBmcmEgduZyZGllbiBhZlxuIgoibWlsavh2YXJpYWJsZW4gVEVYVERPTUFJTi4gSHZpcyB0ZWtzdGthdGFsb2dldCBpa2tlIGthbiBmaW5kZXMgaSBkZXRcbiIKInPmZHZhbmxpZ2UgZmlsa2F0YWxvZywga2FuIGVuIGFuZGVuIHBsYWNlcmluZyBhbmdpdmVzIHZoYSBtaWxq+HZhcmlhYmxlblxuIgoiVEVYVERPTUFJTkRJUi5cbiIKIlN0YW5kYXJkLWZpbGthdGFsb2dldCBmb3Igc/hnbmluZyBlcjogJXNcbiIKCiMsIGMtZm9ybWF0CiN+IG1zZ2lkICIlczogb3B0aW9uICctLSVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCiN+IG1zZ3N0ciAiJXM6IHRpbHZhbGdldCAnLS0lcycgdGlsbGFkZXIgaWtrZSBldCBhcmd1bWVudFxuIgoKIywgYy1mb3JtYXQKI34gbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgb3B0aW9uICctLSVzJ1xuIgojfiBtc2dzdHIgIiVzOiB1a2VuZHQgdGlsdmFsZyBgLS0lcydcbiIKCiMsIGMtZm9ybWF0CiN+IG1zZ2lkICIlczogb3B0aW9uICctVyAlcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudFxuIgojfiBtc2dzdHIgIiVzOiB0aWx2YWxnZXQgJy1XICVzJyB0aWxsYWRlciBpa2tlIGV0IGFyZ3VtZW50XG4iCgojLCBjLWZvcm1hdAojfiBtc2dpZCAiJXM6IG9wdGlvbiAnLVcgJXMnIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCiN+IG1zZ3N0ciAiJXM6IHRpbHZhbGdldCBgJXMnIGty5nZlciBldCBhcmd1bWVudFxuIgoKI34gbXNnaWQgIlJlcG9ydCBidWdzIHRvIDxidWctZ251LWdldHRleHRAZ251Lm9yZz4uXG4iCiN+IG1zZ3N0ciAiUmFwcG9ydOlyIGZlamwgcOUgZW5nZWxzayB0aWwgPGJ1Zy1nbnUtZ2V0dGV4dEBnbnUub3JnPi5cbiIKCiMsIGMtZm9ybWF0LCBuby13cmFwCiN+IG1zZ2lkICIiCiN+ICIgIC1kLCAtLWRvbWFpbj1URVhURE9NQUlOICAgcmV0cmlldmUgdHJhbnNsYXRlZCBtZXNzYWdlcyBmcm9tIFRFWFRET01BSU5cbiIKI34gIiAgLWUgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGUgZXhwYW5zaW9uIG9mIHNvbWUgZXNjYXBlIHNlcXVlbmNlc1xuIgojfiAiICAtRSAgICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmVkIGZvciBjb21wYXRpYmlsaXR5KVxuIgojfiAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0XG4iCiN+ICIgIC1uICAgICAgICAgICAgICAgICAgICAgICAgc3VwcHJlc3MgdHJhaWxpbmcgbmV3bGluZVxuIgojfiAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdFxuIgojfiAiICBbVEVYVERPTUFJTl0gTVNHSUQgICAgICAgIHJldHJpZXZlIHRyYW5zbGF0ZWQgbWVzc2FnZSBjb3JyZXNwb25kaW5nXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gTVNHSUQgZnJvbSBURVhURE9NQUlOXG4iCiN+IG1zZ3N0ciAiIgojfiAiICAtZCwgLS1kb21haW49VEVLU1RET03GTkUgIGhlbnQgb3ZlcnNhdHRlIHRla3N0ZXIgZnJhIFRFS1NURE9Nxk5FXG4iCiN+ICIgIC1lICAgICAgICAgICAgICAgICAgICAgICAgYWt0aXbpciBmb3J0b2xrbmluZyBhZiB2aXNzZSBlc2NhcGUtc2VrdmVuc2VyXG4iCiN+ICIgIC1FICAgICAgICAgICAgICAgICAgICAgICAgKGlnbm9yZXJldCBhZiBoZW5zeW4gdGlsIGtvbXBhdGliaWxpdGV0KVxuIgojfiAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIHZpcyBkZW5uZSBoauZscCBvZyBhZnNsdXRcbiIKI34gIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICB2aXMgdmVyc2lvbnNpbmZvcm1hdGlvbiBvZyBhZnNsdXRcbiIKI34gIiAgW1RFS1NURE9Nxk5FXSBURUtTVElEICAgICBoZW50IGRlbiBvdmVyc2F0dGUgdGVrc3Qgc3ZhcmVuZGUgdGlsXG4iCiN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVLU1RJRCBmcmEgVEVLU1RET03GTkVcbiIKCiMsIGMtZm9ybWF0LCBuby13cmFwCiN+IG1zZ2lkICIiCiN+ICIgIC1kLCAtLWRvbWFpbj1URVhURE9NQUlOICAgcmV0cmlldmUgdHJhbnNsYXRlZCBtZXNzYWdlIGZyb20gVEVYVERPTUFJTlxuIgojfiAiICAtZSAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZSBleHBhbnNpb24gb2Ygc29tZSBlc2NhcGUgc2VxdWVuY2VzXG4iCiN+ICIgIC1FICAgICAgICAgICAgICAgICAgICAgICAgKGlnbm9yZWQgZm9yIGNvbXBhdGliaWxpdHkpXG4iCiN+ICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXRcbiIKI34gIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXRcbiIKI34gIiAgW1RFWFRET01BSU5dICAgICAgICAgICAgICByZXRyaWV2ZSB0cmFuc2xhdGVkIG1lc3NhZ2UgZnJvbSBURVhURE9NQUlOXG4iCiN+ICIgIE1TR0lEIE1TR0lELVBMVVJBTCAgICAgICAgdHJhbnNsYXRlIE1TR0lEIChzaW5ndWxhcikgLyBNU0dJRC1QTFVSQUwgKHBsdXJhbClcbiIKI34gIiAgQ09VTlQgICAgICAgICAgICAgICAgICAgICBjaG9vc2Ugc2luZ3VsYXIvcGx1cmFsIGZvcm0gYmFzZWQgb24gdGhpcyB2YWx1ZVxuIgojfiBtc2dzdHIgIiIKI34gIiAgLWQsIC0tZG9tYWluPVRFS1NURE9Nxk5FICBoZW50IG92ZXJzYXR0ZSB0ZWtzdGVyIGZyYSBURUtTVERPTcZORVxuIgojfiAiICAtZSAgICAgICAgICAgICAgICAgICAgICAgIGFrdGl26XIgZm9ydG9sa25pbmcgYWYgdmlzc2UgZXNjYXBlLXNla3ZlbnNlclxuIgojfiAiICAtRSAgICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmVyZXQgYWYgaGVuc3luIHRpbCBrb21wYXRpYmlsaXRldClcbiIKI34gIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICB2aXMgZGVubmUgaGrmbHAgb2cgYWZzbHV0XG4iCiN+ICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgdmlzIHZlcnNpb25zaW5mb3JtYXRpb24gb2cgYWZzbHV0XG4iCiN+ICIgIFtURUtTVERPTcZORV0gICAgICAgICAgICAgaGVudCBkZW4gb3ZlcnNhdHRlIHRla3N0IGZyYSBURUtTVERPTcZORVxuIgojfiAiICBURUtTVElEIFRFS1NUSUQtRkxFUlRBTCAgIG92ZXJz5nQgVEVLU1RJRCAoZW50YWwpIC8gVEVLU1RJRC1GTEVSVEFMIChmbGVydGFsKVxuIgojfiAiICBDT1VOVCAgICAgICAgICAgICAgICAgICAgIHbmbGcgZW50YWwvZmxlcnRhbHNmb3JtIHVkIGZyYSBkZW5uZSB25nJkaVxuIgo=