IyBEYW5pc2ggbWVzc2FnZXMgZm9yIGdwcm9mLgojIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgYmludXRpbHMgcGFja2FnZS4KIyBLZWxkIFNpbW9uc2VuIDxrZWxkQGtlbGRpeC5jb20+LCAyMDAyLDIwMTEsIDIwMTUKIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogZ3Byb2YgMi4yNC45MFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGJ1Zy1iaW51dGlsc0BnbnUub3JnXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxNC0wMi0xMCAwOTo0MisxMDMwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDE1LTA0LTI2IDE0OjAxKzAyMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogS2VsZCBTaW1vbnNlbiA8a2VsZEBrZWxkaXguY29tPlxuIgoiTGFuZ3VhZ2UtVGVhbTogRGFuaXNoIDxkYW5za0BkYW5zay1ncnVwcGVuLmRrPlxuIgoiTGFuZ3VhZ2U6IGRhXG4iCiJYLUJ1Z3M6IFJlcG9ydCB0cmFuc2xhdGlvbiBlcnJvcnMgdG8gdGhlIExhbmd1YWdlLVRlYW0gYWRkcmVzcy5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIzogYWxwaGEuYzoxMDIgbWlwcy5jOjU0Cm1zZ2lkICI8aW5kaXJlY3QgY2hpbGQ+Igptc2dzdHIgIjxpbmRpcmVrdGUgYmFybj4iCgojOiBhbHBoYS5jOjEwNyBtaXBzLmM6NTkKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdICVzOiAweCVseCB0byAweCVseFxuIgptc2dzdHIgIltmaW5kX2NhbGxdICVzOiAweCVseCB0aWwgMHglbHhcbiIKCiM6IGFscGhhLmM6MTI5CiMsIGMtZm9ybWF0Cm1zZ2lkICJbZmluZF9jYWxsXSAweCVseDoganNyJXMgPGluZGlyZWN0X2NoaWxkPlxuIgptc2dzdHIgIltmaW5kX2NhbGxdIDB4JWx4OiBqc3IlcyA8aW5kaXJla3RlX2Jhcm4+XG4iCgojOiBhbHBoYS5jOjEzOQojLCBjLWZvcm1hdAptc2dpZCAiW2ZpbmRfY2FsbF0gMHglbHg6IGJzciIKbXNnc3RyICJbZmluZF9jYWxsXSAweCVseDogYnNyIgoKIzogYmFzaWNfYmxvY2tzLmM6MTI5IGNhbGxfZ3JhcGguYzo4OSBoaXN0LmM6MTA3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGVcbiIKbXNnc3RyICIlczogJXM6IHV2ZW50ZXQgZmlsc2x1dG5pbmdcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjE5NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHdhcm5pbmc6IGlnbm9yaW5nIGJhc2ljLWJsb2NrIGV4ZWMgY291bnRzICh1c2UgLWwgb3IgLS1saW5lKVxuIgptc2dzdHIgIiVzOiBhZHZhcnNlbDogaWdub3JlcmVyIGVrc2VrdmVyaW5nc3JlZ25pbmcgZm9yIGdydW5kYmxvayAoYnJ1ZyAtbCBlbGxlciAtLWxpbmUpXG4iCgojLiBGSVhNRTogVGhpcyBvbmx5IHdvcmtzIGlmIGJmZF92bWEgaXMgdW5zaWduZWQgbG9uZy4KIzogYmFzaWNfYmxvY2tzLmM6MjkwIGJhc2ljX2Jsb2Nrcy5jOjMwMAojLCBjLWZvcm1hdAptc2dpZCAiJXM6JWQ6ICglczoweCVseCkgJWx1IGV4ZWN1dGlvbnNcbiIKbXNnc3RyICIlczolZDogKCVzOjB4JWx4KSAlbHUgZWtzZWt2ZXJpbmdlclxuIgoKIzogYmFzaWNfYmxvY2tzLmM6MjkxIGJhc2ljX2Jsb2Nrcy5jOjMwMQptc2dpZCAiPHVua25vd24+Igptc2dzdHIgIjx1a2VuZHQ+IgoKIzogYmFzaWNfYmxvY2tzLmM6NTQ0CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIlxuIgoiVG9wICVkIExpbmVzOlxuIgoiXG4iCiIgICAgIExpbmUgICAgICBDb3VudFxuIgoiXG4iCm1zZ3N0ciAiIgoiXG4iCiJcbiIKIth2ZXJzdGUgJWQgbGluamVyOlxuIgoiXG4iCiIgICAgIExpbmplICAgICBBbnRhbFxuIgoiXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1NjgKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiRXhlY3V0aW9uIFN1bW1hcnk6XG4iCiJcbiIKbXNnc3RyICIiCiJcbiIKIkVrc2VrdmVyaW5nc292ZXJzaWd0OlxuIgoiXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1NjkKIywgYy1mb3JtYXQKbXNnaWQgIiU5bGQgICBFeGVjdXRhYmxlIGxpbmVzIGluIHRoaXMgZmlsZVxuIgptc2dzdHIgIiU5bGQgICBFa3Nla3ZlcmJhcmUgbGluamVyIGkgZGVubmUgZmlsXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1NzEKIywgYy1mb3JtYXQKbXNnaWQgIiU5bGQgICBMaW5lcyBleGVjdXRlZFxuIgptc2dzdHIgIiU5bGQgICBFa3Nla3ZlcmVkZSBsaW5qZXJcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3MgojLCBjLWZvcm1hdAptc2dpZCAiJTkuMmYgICBQZXJjZW50IG9mIHRoZSBmaWxlIGV4ZWN1dGVkXG4iCm1zZ3N0ciAiJTkuMmYgICBQcm9jZW50IGFmIGZpbGVuIGVrc2VrdmVyZXRcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3NgojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiIlOWx1ICAgVG90YWwgbnVtYmVyIG9mIGxpbmUgZXhlY3V0aW9uc1xuIgptc2dzdHIgIiIKIlxuIgoiJTlsdSAgIFRvdGFsdCBhbnRhbCBsaW5qZWVrc2VrdmVyaW5nZXJcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3OAojLCBjLWZvcm1hdAptc2dpZCAiJTkuMmYgICBBdmVyYWdlIGV4ZWN1dGlvbnMgcGVyIGxpbmVcbiIKbXNnc3RyICIlOS4yZiAgIEdlbm5lbXNuaXRla3Nla3ZlcmluZ2VyIHBlciBsaW5qZVxuIgoKIzogY2FsbF9ncmFwaC5jOjY4CiMsIGMtZm9ybWF0Cm1zZ2lkICJbY2dfdGFsbHldIGFyYyBmcm9tICVzIHRvICVzIHRyYXZlcnNlZCAlbHUgdGltZXNcbiIKbXNnc3RyICJbY2dfdGFsbHldIGdyZW4gZnJhICVzIHRpbCAlcyBnZW5uZW1s+GJldCAlbHUgZ2FuZ2VcbiIKCiM6IGNnX3ByaW50LmM6NzUKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlx0XHQgICAgIENhbGwgZ3JhcGggKGV4cGxhbmF0aW9uIGZvbGxvd3MpXG4iCiJcbiIKbXNnc3RyICIiCiJcdFx0ICAgICBLYWxkc2dyYWYgKGZvcmtsYXJpbmcgZvhsZ2VyKVxuIgoiXG4iCgojOiBjZ19wcmludC5jOjc3CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcdFx0XHRDYWxsIGdyYXBoXG4iCiJcbiIKbXNnc3RyICIiCiJcdFx0XHRLYWxkc2dyYWZcbiIKIlxuIgoKIzogY2dfcHJpbnQuYzo4MCBoaXN0LmM6NDcxCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKImdyYW51bGFyaXR5OiBlYWNoIHNhbXBsZSBoaXQgY292ZXJzICVsZCBieXRlKHMpIgptc2dzdHIgIiIKIlxuIgoib3Bs+HNuaW5nOiBodmVyIHN0aWtwcvh2ZSBk5mtrZXIgJWxkIGJ5dGUiCgojOiBjZ19wcmludC5jOjg0CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgZm9yICUuMmYlJSBvZiAlLjJmIHNlY29uZHNcbiIKIlxuIgptc2dzdHIgIiIKIiBmb3IgJS4yZiUlIHDlICUuMmYgc2VrdW5kZXJcbiIKIlxuIgoKIzogY2dfcHJpbnQuYzo4OAojLCBjLWZvcm1hdAptc2dpZCAiIgoiIG5vIHRpbWUgcHJvcGFnYXRlZFxuIgoiXG4iCm1zZ3N0ciAiIgoiIGluZ2VuIHRpZCBwcm9wYWdlcmV0XG4iCiJcbiIKCiM6IGNnX3ByaW50LmM6OTcgY2dfcHJpbnQuYzoxMDIgY2dfcHJpbnQuYzoxMDUKbXNnaWQgImNhbGxlZCIKbXNnc3RyICJrYWxkdCIKCiM6IGNnX3ByaW50LmM6OTcgY2dfcHJpbnQuYzoxMDUKbXNnaWQgInRvdGFsIgptc2dzdHIgInRvdGFsdCIKCiM6IGNnX3ByaW50LmM6OTcKbXNnaWQgInBhcmVudHMiCm1zZ3N0ciAiZm9y5mxkcmUiCgojOiBjZ19wcmludC5jOjk5IGNnX3ByaW50LmM6MTAzCm1zZ2lkICJpbmRleCIKbXNnc3RyICJpbmRla3MiCgojOiBjZ19wcmludC5jOjEwMQojLCBuby1jLWZvcm1hdAptc2dpZCAiJXRpbWUiCm1zZ3N0ciAiJXRpZCIKCiM6IGNnX3ByaW50LmM6MTAyCm1zZ2lkICJzZWxmIgptc2dzdHIgInNlbHYiCgojOiBjZ19wcmludC5jOjEwMgptc2dpZCAiZGVzY2VuZGFudHMiCm1zZ3N0ciAiYWZrb20iCgojOiBjZ19wcmludC5jOjEwMyBoaXN0LmM6NDk3Cm1zZ2lkICJuYW1lIgptc2dzdHIgIm5hdm4iCgojOiBjZ19wcmludC5jOjEwNQptc2dpZCAiY2hpbGRyZW4iCm1zZ3N0ciAiYvhybiIKCiM6IGNnX3ByaW50LmM6MTEwCiMsIGMtZm9ybWF0Cm1zZ2lkICJpbmRleCAlJSB0aW1lICAgIHNlbGYgIGNoaWxkcmVuICAgIGNhbGxlZCAgICAgbmFtZVxuIgptc2dzdHIgImluZGVrcyAlJSB0aWQgICAgc2VsdiAgYvhybiAgICAgICAga2FsZHQgICAgICBuYXZuXG4iCgojOiBjZ19wcmludC5jOjEzMwojLCBjLWZvcm1hdAptc2dpZCAiIDxjeWNsZSAlZCBhcyBhIHdob2xlPiBbJWRdXG4iCm1zZ3N0ciAiIDxoZWxlIGN5a2x1c2VuICVkPiBbJWRdXG4iCgojOiBjZ19wcmludC5jOjM1OQojLCBjLWZvcm1hdAptc2dpZCAiJTYuNnMgJTUuNXMgJTcuN3MgJTExLjExcyAlNy43cyAlNy43cyAgICAgPHNwb250YW5lb3VzPlxuIgptc2dzdHIgIiU2LjZzICU1LjVzICU3LjdzICUxMS4xMXMgJTcuN3MgJTcuN3MgICAgIDxzcG9udGFudD5cbiIKCiM6IGNnX3ByaW50LmM6MzYwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlNi42cyAlNS41cyAlNy43cyAlNy43cyAlNy43cyAlNy43cyAgICAgPHNwb250YW5lb3VzPlxuIgptc2dzdHIgIiU2LjZzICU1LjVzICU3LjdzICU3LjdzICU3LjdzICU3LjdzICAgICA8c3BvbnRhbnQ+XG4iCgojOiBjZ19wcmludC5jOjU5NAojLCBjLWZvcm1hdAptc2dpZCAiIgoiSW5kZXggYnkgZnVuY3Rpb24gbmFtZVxuIgoiXG4iCm1zZ3N0ciAiIgoiSW5kZWtzIGVmdGVyIGZ1bmt0aW9uc25hdm5cbiIKIlxuIgoKIzogY2dfcHJpbnQuYzo2NTEgY2dfcHJpbnQuYzo2NjAKIywgYy1mb3JtYXQKbXNnaWQgIjxjeWNsZSAlZD4iCm1zZ3N0ciAiPGN5a2x1cyAlZD4iCgojOiBjb3JlZmlsZS5jOjYxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5hYmxlIHRvIHBhcnNlIG1hcHBpbmcgZmlsZSAlcy5cbiIKbXNnc3RyICIlczoga2FuIGlra2UgdG9sa2UgbWFwcGluZ3NmaWxlbiAlcy5cbiIKCiM6IGNvcmVmaWxlLmM6ODUgY29yZWZpbGUuYzo1MjYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjb3VsZCBub3Qgb3BlbiAlcy5cbiIKbXNnc3RyICIlczoga3VubmUgaWtrZSDlYm5lICVzLlxuIgoKIzogY29yZWZpbGUuYzoxODcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogbm90IGluIGV4ZWN1dGFibGUgZm9ybWF0XG4iCm1zZ3N0ciAiJXM6ICVzOiBpa2tlIGkgdWRm+HJiYXJ0IGZvcm1hdFxuIgoKIzogY29yZWZpbGUuYzoxOTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW4ndCBmaW5kIC50ZXh0IHNlY3Rpb24gaW4gJXNcbiIKbXNnc3RyICIlczoga2FuIGlra2UgZmluZGUgLnRleHQtc2VrdGlvbiBpICVzXG4iCgojOiBjb3JlZmlsZS5jOjI3MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHJhbiBvdXQgcm9vbSBmb3IgJWx1IGJ5dGVzIG9mIHRleHQgc3BhY2VcbiIKbXNnc3RyICIlczogc2x1dCBw5SBwbGFkcyBmb3IgJWx1IGJ5dGUgdGVrc3RwbGFkc1xuIgoKIzogY29yZWZpbGUuYzoyODcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW4ndCBkbyAtY1xuIgptc2dzdHIgIiVzOiBrYW4gaWtrZSBsYXZlIC1jXG4iCgojOiBjb3JlZmlsZS5jOjMzMAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IC1jIG5vdCBzdXBwb3J0ZWQgb24gYXJjaGl0ZWN0dXJlICVzXG4iCm1zZ3N0ciAiJXM6IC1jIHVuZGVyc3T4dHRlcyBpa2tlIHDlIGFya2l0ZWt0dXJlbiAlc1xuIgoKIzogY29yZWZpbGUuYzo1MzUgY29yZWZpbGUuYzo2MzgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIGAlcycgaGFzIG5vIHN5bWJvbHNcbiIKbXNnc3RyICIlczogZmlsZW4gXCIlc1wiIGhhciBpbmdlbiBzeW1ib2xlclxuIgoKIzogY29yZWZpbGUuYzo5MDUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBzb21lYm9keSBtaXNjb3VudGVkOiBsdGFiLmxlbj0lZCBpbnN0ZWFkIG9mICVsZFxuIgptc2dzdHIgIiVzOiBub2dlbiByZWduZWRlIGZvcmtlcnQ6IGx0YWIubGVuPSVkIGkgc3RlZGV0IGZvciAlbGRcbiIKCiM6IGdtb25faW8uYzo4NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGFkZHJlc3Mgc2l6ZSBoYXMgdW5leHBlY3RlZCB2YWx1ZSBvZiAldVxuIgptc2dzdHIgIiVzOnN0+HJyZWxzZSBw5SBhZHJlc3NlIGhhciBlbiB1dmVudGV0IHbmcmRpIHDlICV1XG4iCgojOiBnbW9uX2lvLmM6MzE5IGdtb25faW8uYzo0MTUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIHRvbyBzaG9ydCB0byBiZSBhIGdtb24gZmlsZVxuIgptc2dzdHIgIiVzOiBmaWxlbiBlciBmb3Iga29ydCB0aWwgYXQgduZyZSBlbiBnbW9uLWZpbFxuIgoKIzogZ21vbl9pby5jOjMyOSBnbW9uX2lvLmM6NDU4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSBgJXMnIGhhcyBiYWQgbWFnaWMgY29va2llXG4iCm1zZ3N0ciAiJXM6IGZpbGVuIFwiJXNcIiBoYXIgZmVqbGFndGlndCBtYWdpc2sgdGFsXG4iCgojOiBnbW9uX2lvLmM6MzQwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSBgJXMnIGhhcyB1bnN1cHBvcnRlZCB2ZXJzaW9uICVkXG4iCm1zZ3N0ciAiJXM6IGZpbGVuIFwiJXNcIiBoYXIgdmVyc2lvbiAlZCBzb20gaWtrZSB1bmRlcnN0+HR0ZXNcbiIKCiM6IGdtb25faW8uYzozNzAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogZm91bmQgYmFkIHRhZyAlZCAoZmlsZSBjb3JydXB0ZWQ/KVxuIgptc2dzdHIgIiVzOiAlczogZmFuZHQgZmVqbGFndGlnIG3mcmtlICVkIChlciBmaWxlbiBiZXNrYWRpZ2V0PylcbiIKCiM6IGdtb25faW8uYzo0MzcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBwcm9maWxpbmcgcmF0ZSBpbmNvbXBhdGlibGUgd2l0aCBmaXJzdCBnbW9uIGZpbGVcbiIKbXNnc3RyICIlczogcHJvZmlsZXJpbmdzaGFzdGlnaGVkIGVyIGlua29tcGF0aWJlbCBtZWQgZvhyc3RlIGdtb24tZmlsXG4iCgojOiBnbW9uX2lvLmM6NDg4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW5jb21wYXRpYmxlIHdpdGggZmlyc3QgZ21vbiBmaWxlXG4iCm1zZ3N0ciAiJXM6IGlua29tcGF0aWJlbCBtZWQgZvhyc3RlIGdtb24tZmlsXG4iCgojOiBnbW9uX2lvLmM6NTE4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSAnJXMnIGRvZXMgbm90IGFwcGVhciB0byBiZSBpbiBnbW9uLm91dCBmb3JtYXRcbiIKbXNnc3RyICIlczogZmlsZW4gXCIlc1wiIHNlciBpa2tlIHVkIHRpbCBhdCB25nJlIGkgZ21vbi5vdXQtZm9ybWF0XG4iCgojOiBnbW9uX2lvLmM6NTMxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5leHBlY3RlZCBFT0YgYWZ0ZXIgcmVhZGluZyAlZC8lZCBiaW5zXG4iCm1zZ3N0ciAiJXM6IHV2ZW50ZXQgZmlsc2x1dCBlZnRlciBs5nNuaW5nIGFmICVkLyVkIHBvc3RlclxuIgoKIzogZ21vbl9pby5jOjU2MwojLCBjLWZvcm1hdAptc2dpZCAidGltZSBpcyBpbiB0aWNrcywgbm90IHNlY29uZHNcbiIKbXNnc3RyICJ0aWRlbiBlciBpIHRpY2ssIGlra2Ugc2VrdW5kZXJcbiIKCiM6IGdtb25faW8uYzo1NjkgZ21vbl9pby5jOjc0OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGRvbid0IGtub3cgaG93IHRvIGRlYWwgd2l0aCBmaWxlIGZvcm1hdCAlZFxuIgptc2dzdHIgIiVzOiB2ZWQgaWtrZSBodm9yZGFuIGZpbGZvcm1hdCAlZCBza2FsIGjlbmR0ZXJlc1xuIgoKIzogZ21vbl9pby5jOjU3OQojLCBjLWZvcm1hdAptc2dpZCAiRmlsZSBgJXMnICh2ZXJzaW9uICVkKSBjb250YWluczpcbiIKbXNnc3RyICJGaWxlbiBcIiVzXCIgKHZlcnNpb24gJWQpIGluZGVob2xkZXI6XG4iCgojOiBnbW9uX2lvLmM6NTgyCiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGhpc3RvZ3JhbSByZWNvcmRcbiIKbXNnc3RyICJcdCVkIGhpc3RvZ3JhbXBvc3RcbiIKCiM6IGdtb25faW8uYzo1ODMKIywgYy1mb3JtYXQKbXNnaWQgIlx0JWQgaGlzdG9ncmFtIHJlY29yZHNcbiIKbXNnc3RyICJcdCVkIGhpc3RvZ3JhbXBvc3RlclxuIgoKIzogZ21vbl9pby5jOjU4NQojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBjYWxsLWdyYXBoIHJlY29yZFxuIgptc2dzdHIgIlx0JWQga2FsZHNncmFmcG9zdFxuIgoKIzogZ21vbl9pby5jOjU4NgojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBjYWxsLWdyYXBoIHJlY29yZHNcbiIKbXNnc3RyICJcdCVkIGthbGRzZ3JhZnBvc3RlclxuIgoKIzogZ21vbl9pby5jOjU4OAojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBiYXNpYy1ibG9jayBjb3VudCByZWNvcmRcbiIKbXNnc3RyICJcdCVkIGdydW5kYmxva3NyZWduaW5nc3Bvc3RcbiIKCiM6IGdtb25faW8uYzo1ODkKIywgYy1mb3JtYXQKbXNnaWQgIlx0JWQgYmFzaWMtYmxvY2sgY291bnQgcmVjb3Jkc1xuIgptc2dzdHIgIlx0JWQgZ3J1bmRibG9rc3JlZ25pbmdzcG9zdGVyXG4iCgojOiBncHJvZi5jOjE2MgojLCBjLWZvcm1hdAptc2dpZCAiIgoiVXNhZ2U6ICVzIFstW2FiY0RoaWxMc1R2d3h5el1dIFstW0FDZUVmRkpuTk9wUHFTUVpdW25hbWVdXSBbLUkgZGlyc11cbiIKIlx0Wy1kW251bV1dIFstayBmcm9tL3RvXSBbLW0gbWluLWNvdW50XSBbLXQgdGFibGUtbGVuZ3RoXVxuIgoiXHRbLS1bbm8tXWFubm90YXRlZC1zb3VyY2VbPW5hbWVdXSBbLS1bbm8tXWV4ZWMtY291bnRzWz1uYW1lXV1cbiIKIlx0Wy0tW25vLV1mbGF0LXByb2ZpbGVbPW5hbWVdXSBbLS1bbm8tXWdyYXBoWz1uYW1lXV1cbiIKIlx0Wy0tW25vLV10aW1lPW5hbWVdIFstLWFsbC1saW5lc10gWy0tYnJpZWZdIFstLWRlYnVnWz1sZXZlbF1dXG4iCiJcdFstLWZ1bmN0aW9uLW9yZGVyaW5nXSBbLS1maWxlLW9yZGVyaW5nXSBbLS1pbmxpbmUtZmlsZS1uYW1lc11cbiIKIlx0Wy0tZGlyZWN0b3J5LXBhdGg9ZGlyc10gWy0tZGlzcGxheS11bnVzZWQtZnVuY3Rpb25zXVxuIgoiXHRbLS1maWxlLWZvcm1hdD1uYW1lXSBbLS1maWxlLWluZm9dIFstLWhlbHBdIFstLWxpbmVdIFstLW1pbi1jb3VudD1uXVxuIgoiXHRbLS1uby1zdGF0aWNdIFstLXByaW50LXBhdGhdIFstLXNlcGFyYXRlLWZpbGVzXVxuIgoiXHRbLS1zdGF0aWMtY2FsbC1ncmFwaF0gWy0tc3VtXSBbLS10YWJsZS1sZW5ndGg9bGVuXSBbLS10cmFkaXRpb25hbF1cbiIKIlx0Wy0tdmVyc2lvbl0gWy0td2lkdGg9bl0gWy0taWdub3JlLW5vbi1mdW5jdGlvbnNdXG4iCiJcdFstLWRlbWFuZ2xlWz1TVFlMRV1dIFstLW5vLWRlbWFuZ2xlXSBbLS1leHRlcm5hbC1zeW1ib2wtdGFibGU9bmFtZV0gW0BGSUxFXVxuIgoiXHRbaW1hZ2UtZmlsZV0gW3Byb2ZpbGUtZmlsZS4uLl1cbiIKbXNnc3RyICIiCiJCcnVnOiAlcyBbLVthYmNEaGlsTHNUdnd4eXpdXSBbLVtBQ2VFZkZKbk5PcFBxU1FaXVtuYW1lXV0gWy1JIGthdGFsb2dlcl1cbiIKIlx0Wy1kW3RhbF1dIFstayBmcmEvdGlsXSBbLW0gbWluZHN0ZS1hbnRhbF0gWy10IHRhYmVsLWzmbmdkZV1cbiIKIlx0Wy0tW25vLV1hbm5vdGF0ZWQtc291cmNlWz1uYXZuXV0gWy0tW25vLV1leGVjLWNvdW50c1s9bmF2bl1dXG4iCiJcdFstLVtuby1dZmxhdC1wcm9maWxlWz1uYXZuXV0gWy0tW25vLV1ncmFwaFs9bmF2bl1dXG4iCiJcdFstLVtuby1ddGltZT1uYXZuXSBbLS1hbGwtbGluZXNdIFstLWJyaWVmXSBbLS1kZWJ1Z1s9bml2ZWF1XV1cbiIKIlx0Wy0tZnVuY3Rpb24tb3JkZXJpbmddIFstLWZpbGUtb3JkZXJpbmddIFstLWlubGluZS1maWxlLW5hdm5lXVxuIgoiXHRbLS1kaXJlY3RvcnktcGF0aD1rYXRhbG9nZXJdIFstLWRpc3BsYXktdW51c2VkLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZmlsZS1mb3JtYXQ9bmF2bl0gWy0tZmlsZS1pbmZvXSBbLS1oZWxwXSBbLS1saW5lXSBbLS1taW4tY291bnQ9bl1cbiIKIlx0Wy0tbm8tc3RhdGljXSBbLS1wcmludC1wYXRoXSBbLS1zZXBhcmF0ZS1maWxlc11cbiIKIlx0Wy0tc3RhdGljLWNhbGwtZ3JhcGhdIFstLXN1bV0gWy0tdGFibGUtbGVuZ3RoPWzmbmdkZV0gWy0tdHJhZGl0aW9uYWxdXG4iCiJcdFstLXZlcnNpb25dIFstLXdpZHRoPW5dIFstLWlnbm9yZS1ub24tZnVuY3Rpb25zXVxuIgoiXHRbLS1kZW1hbmdsZVs9U1RJTF1dIFstLW5vLWRlbWFuZ2xlXSBbLS1leHRlcm5hbC1zeW1ib2wtdGFibGU9bmF2bl0gW0BGSUxdXG4iCiJcdFtpbWFnZS1maWxlXSBbcHJvZmlsZS1maWxlLi4uXVxuIgoiXHRbYmlsbGVkZmlsXSBbcHJvZmlsZmlsLi4uXVxuIgoKIzogZ3Byb2YuYzoxNzgKIywgYy1mb3JtYXQKbXNnaWQgIlJlcG9ydCBidWdzIHRvICVzXG4iCm1zZ3N0ciAiIgoiUmFwcG9ydOlyIGZlamwgdGlsICVzLFxuIgoib2cgc3lucHVua3RlciBw5SBvdmVyc+Z0dGVsc2VuIHRpbCBkYW5za0BkYW5zay1ncnVwcGVuLmRrXG4iCgojOiBncHJvZi5jOjI1NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGRlYnVnZ2luZyBub3Qgc3VwcG9ydGVkOyAtZCBpZ25vcmVkXG4iCm1zZ3N0ciAiJXM6IGZlamxz+GduaW5nIHVuZGVyc3T4dHRlcyBpa2tlOyAtZCBpZ25vcmVyZWRlc1xuIgoKIzogZ3Byb2YuYzozMzQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmtub3duIGZpbGUgZm9ybWF0ICVzXG4iCm1zZ3N0ciAiJXM6IHVrZW5kdCBmaWxmb3JtYXQgJXNcbiIKCiMuIFRoaXMgb3V0cHV0IGlzIGludGVuZGVkIHRvIGZvbGxvdyB0aGUgR05VIHN0YW5kYXJkcyBkb2N1bWVudC4KIzogZ3Byb2YuYzo0MjIKIywgYy1mb3JtYXQKbXNnaWQgIkdOVSBncHJvZiAlc1xuIgptc2dzdHIgIkdOVSBncHJvZiAlc1xuIgoKIzogZ3Byb2YuYzo0MjMKIywgYy1mb3JtYXQKbXNnaWQgIkJhc2VkIG9uIEJTRCBncHJvZiwgY29weXJpZ2h0IDE5ODMgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLlxuIgptc2dzdHIgIkJhc2VyZXQgcOUgQlNEIGdwcm9mLCBjb3B5cmlnaHQgMTk4MyBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuXG4iCgojOiBncHJvZi5jOjQyNAojLCBjLWZvcm1hdAptc2dpZCAiVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmUuICBUaGlzIHByb2dyYW0gaGFzIGFic29sdXRlbHkgbm8gd2FycmFudHkuXG4iCm1zZ3N0ciAiRGV0dGUgcHJvZ3JhbSBlciBmcml0IHByb2dyYW1tZWwuIERldHRlIHByb2dyYW0gaGFyIGluZ2VuIHNvbSBoZWxzdCBnYXJhbnRpLlxuIgoKIzogZ3Byb2YuYzo0NjUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmtub3duIGRlbWFuZ2xpbmcgc3R5bGUgYCVzJ1xuIgptc2dzdHIgIiVzOiB1a2VuZHQgZGVtYW5nbGluZ3NzdGlsIFwiJXNcIlxuIgoKIzogZ3Byb2YuYzo0ODgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBPbmx5IG9uZSBvZiAtLWZ1bmN0aW9uLW9yZGVyaW5nIGFuZCAtLWZpbGUtb3JkZXJpbmcgbWF5IGJlIHNwZWNpZmllZC5cbiIKbXNnc3RyICIlczogS3VuIGVuIGFmIC0tZnVuY3Rpb24tb3JkZXJpbmcgb2cgLS1maWxlLW9yZGVyaW5nIGthbiBhbmdpdmVzLlxuIgoKIzogZ3Byb2YuYzo1NDAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBzb3JyeSwgZmlsZSBmb3JtYXQgYHByb2YnIGlzIG5vdCB5ZXQgc3VwcG9ydGVkXG4iCm1zZ3N0ciAiJXM6IGRlc3bmcnJlLCBmaWxmb3JtYXRldCBcInByb2ZcIiB1bmRlcnN0+HR0ZXMgaWtrZSBlbmRudVxuIgoKIzogZ3Byb2YuYzo1OTQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBnbW9uLm91dCBmaWxlIGlzIG1pc3NpbmcgaGlzdG9ncmFtXG4iCm1zZ3N0ciAiJXM6IGdtb24ub3V0LWZpbGVuIG1hbmdsZXIgaGlzdG9ncmFtXG4iCgojOiBncHJvZi5jOjYwMQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGdtb24ub3V0IGZpbGUgaXMgbWlzc2luZyBjYWxsLWdyYXBoIGRhdGFcbiIKbXNnc3RyICIlczogZ21vbi5vdXQtZmlsZW4gbWFuZ2xlciBrYWxkc2dyYWZkYXRhXG4iCgojOiBoaXN0LmM6MTM1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlczogZGltZW5zaW9uIHVuaXQgY2hhbmdlZCBiZXR3ZWVuIGhpc3RvZ3JhbSByZWNvcmRzXG4iCiIlczogZnJvbSAnJXMnXG4iCiIlczogdG8gJyVzJ1xuIgptc2dzdHIgIiIKIiVzOiBlbmhlZCBmb3IgZGltZW5zaW9uIOZuZHJlZGVzIG1lbGxlbSBoaXN0b2dyYW1wb3N0ZXJcbiIKIiVzOiBmcmEgJyVzJ1xuIgoiJXM6IHRpbCAnJXMnXG4iCgojOiBoaXN0LmM6MTQ1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlczogZGltZW5zaW9uIGFiYnJldmlhdGlvbiBjaGFuZ2VkIGJldHdlZW4gaGlzdG9ncmFtIHJlY29yZHNcbiIKIiVzOiBmcm9tICclYydcbiIKIiVzOiB0byAnJWMnXG4iCm1zZ3N0ciAiIgoiJXM6IGZvcmtvcnRlbHNlIGZvciBkaW1lbnNpb24g5m5kcmVkZXMgbWVsbGVtIGhpc3RvZ3JhbXBvc3RlclxuIgoiJXM6IGZyYSAnJWMnXG4iCiIlczogdGlsICclYydcbiIKCiM6IGhpc3QuYzoxNTkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBkaWZmZXJlbnQgc2NhbGVzIGluIGhpc3RvZ3JhbSByZWNvcmRzIgptc2dzdHIgIiVzOiBmb3Jza2VsbGlnZSBza2FsYWVyIGkgaGlzdG9ncmFtcG9zdGVyIgoKIzogaGlzdC5jOjE5NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG92ZXJsYXBwaW5nIGhpc3RvZ3JhbSByZWNvcmRzXG4iCm1zZ3N0ciAiJXMgb3ZlcmxhcHBlbmRlIGhpc3RvZ3JhbXBvc3RlclxuIgoKIzogaGlzdC5jOjIzMAojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiB1bmV4cGVjdGVkIEVPRiBhZnRlciByZWFkaW5nICV1IG9mICV1IHNhbXBsZXNcbiIKbXNnc3RyICIlczogJXM6IHV2ZW50ZXQgZmlsc2x1dCBlZnRlciBs5nNuaW5nIGFmICV1IGFmICV1IHN0aWtwcvh2ZXJcbiIKCiM6IGhpc3QuYzo0NjcKIywgYy1mb3JtYXQKbXNnaWQgIiVjJWMvY2FsbCIKbXNnc3RyICIlYyVjL2thbGQiCgojOiBoaXN0LmM6NDc1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgZm9yICUuMmYlJSBvZiAlLjJmICVzXG4iCiJcbiIKbXNnc3RyICIiCiIgZm9yICUuMmYlJSBhZiAlLjJmICVzXG4iCiJcbiIKCiM6IGhpc3QuYzo0ODEKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiRWFjaCBzYW1wbGUgY291bnRzIGFzICVnICVzLlxuIgptc2dzdHIgIiIKIlxuIgoiSHZlciBzdGlrcHL4dmUgcmVnbmVzIHNvbSAlZyAlcy5cbiIKCiM6IGhpc3QuYzo0ODYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiBubyB0aW1lIGFjY3VtdWxhdGVkXG4iCiJcbiIKbXNnc3RyICIiCiIgaW5nZW4gdGlkIGFra3VtdWxlcmV0XG4iCiJcbiIKCiM6IGhpc3QuYzo0OTMKbXNnaWQgImN1bXVsYXRpdmUiCm1zZ3N0ciAia3VtdWxhdGl2IgoKIzogaGlzdC5jOjQ5Mwptc2dpZCAic2VsZiAgIgptc2dzdHIgInNlbHYiCgojOiBoaXN0LmM6NDkzCm1zZ2lkICJ0b3RhbCAiCm1zZ3N0ciAidG90YWx0IgoKIzogaGlzdC5jOjQ5Ngptc2dpZCAidGltZSIKbXNnc3RyICJ0aWQiCgojOiBoaXN0LmM6NDk2Cm1zZ2lkICJjYWxscyIKbXNnc3RyICJrYWxkIgoKIzogaGlzdC5jOjU4NQojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiJcbiIKIlxuIgoiZmxhdCBwcm9maWxlOlxuIgptc2dzdHIgIiIKIlxuIgoiXG4iCiJcbiIKImZsYWQgcHJvZmlsOlxuIgoKIzogaGlzdC5jOjU5MQojLCBjLWZvcm1hdAptc2dpZCAiRmxhdCBwcm9maWxlOlxuIgptc2dzdHIgIkZsYWQgcHJvZmlsOlxuIgoKIzogaGlzdC5jOjcxMgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZvdW5kIGEgc3ltYm9sIHRoYXQgY292ZXJzIHNldmVyYWwgaGlzdG9ncmFtIHJlY29yZHMiCm1zZ3N0ciAiJXM6IGZhbmR0IGV0IHN5bWJvbCBkZXIgZOZra2VyIGZsZXJlIGhpc29ncmFtcG9zdGVyIgoKIzogbWlwcy5jOjcxCiMsIGMtZm9ybWF0Cm1zZ2lkICJbZmluZF9jYWxsXSAweCVseDogamFsIgptc2dzdHIgIltmaW5kX2NhbGxdIDB4JWx4OiBqYWwiCgojOiBtaXBzLmM6OTkKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdIDB4JWx4OiBqYWxyXG4iCm1zZ3N0ciAiW2ZpbmRfY2FsbF0gMHglbHg6IGphbHJcbiIKCiM6IHNvdXJjZS5jOjE2MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNvdWxkIG5vdCBsb2NhdGUgYCVzJ1xuIgptc2dzdHIgIiVzOiBrdW5uZSBpa2tlIGZpbmRlIFwiJXNcIlxuIgoKIzogc291cmNlLmM6MjM3CiMsIGMtZm9ybWF0Cm1zZ2lkICIqKiogRmlsZSAlczpcbiIKbXNnc3RyICIqKiogRmlsICVzOlxuIgoKIzogdXRpbHMuYzoxMDYKIywgYy1mb3JtYXQKbXNnaWQgIiA8Y3ljbGUgJWQ+Igptc2dzdHIgIiA8Y3lrbHVzICVkPiIKCiN+IG1zZ2lkICIlczogYCVzJyBpcyBpbmNvbXBhdGlibGUgd2l0aCBmaXJzdCBnbW9uIGZpbGVcbiIKI34gbXNnc3RyICIlczogXCIlc1wiIGVyIGlua29tcGF0aWJlbCBtZWQgZvhyc3RlIGdtb24tZmlsXG4iCgojfiBtc2dpZCAiJXM6IGJmZF92bWEgaGFzIHVuZXhwZWN0ZWQgc2l6ZSBvZiAlbGQgYnl0ZXNcbiIKI34gbXNnc3RyICIlczogYmZkX3ZtYSBoYXIgZW4gdXZlbnRldCBzdPhycmVsc2UgcOUgJWxkIGJ5dGVcbiIK